41 lines
903 B
Python
41 lines
903 B
Python
import datetime
|
|
|
|
def genday(dt):
|
|
now = datetime.date.today().strftime("%Y%m%dT000000Z")
|
|
then = dt.strftime("%Y%m%d")
|
|
di = "%i"
|
|
ds = "%s"
|
|
|
|
return '''BEGIN:VEVENT
|
|
UID:%s@kumig.it
|
|
DTSTAMP:%s
|
|
DTSTART;VALUE=DATE:%s
|
|
SUMMARY:%s days since %s
|
|
END:VEVENT
|
|
''' % (ds, now, then, di, ds)
|
|
|
|
def gencal(dt, offset = None, string = None, futuredays = 14):
|
|
offset = offset or (datetime.date.today() - dt).days
|
|
|
|
rv = '''BEGIN:VCALENDAR
|
|
VERSION:2.0
|
|
PRODID:-//Klaus-Uwe Mitterer//DaysSince//EN
|
|
METHOD:PUBLISH
|
|
'''
|
|
|
|
for day in range(offset + futuredays):
|
|
rv += genday(dt + datetime.timedelta(days = day)) % ("%i%i%i%i" % (dt.year, dt.month, dt.day, day), day, "%i/%i/%i" % (dt.year, dt.month, dt.day))
|
|
|
|
rv += "END:VCALENDAR"
|
|
|
|
return rv
|
|
|
|
def cal(dt, string = None):
|
|
offset = (datetime.date.today() - dt).days
|
|
|
|
if offset < 0:
|
|
return ""
|
|
|
|
else:
|
|
return iter([gencal(dt, string).replace("\n", "\r\n").encode()])
|