def print_month(month=datetime.date.today().month, year=datetime.date.today().year, today=datetime.date.today()): """returns a single month calendar, current date highlighted, much like cal(1) or python calendar.prmonth """ khal = '' mycal = calendar.Calendar(0) # 0: week starts on monday month_name = calendar.month_name[month] + ' ' + str(year) khal = month_name.center(20) + '\n' khal = khal + bstring('Mo Tu We Th Fr Sa Su') + '\n' for mday, wday in mycal.itermonthdays2(year, month): if mday == 0: mday = '' elif mday == today.day and month == today.month and year == today.year: mday = rstring(str(mday).rjust(2)) khal = khal + str(mday).rjust(2) + ' ' if wday % 7 == 6: khal = khal + '\n' khal = khal + '\n' return khal
def str_week(week, today): """returns a string representing one week, if for day == today colour is reversed :param week: list of 6 datetime.date objects (one week) :type day: list() :param today: the date of today :type today: datetime.date :return: string, which if printed on terminal appears to have length 20, but may contain ascii escape sequences :rtype: str """ strweek = '' for day in week: if day == today: day = rstring(str(day.day).rjust(2)) else: day = str(day.day).rjust(2) strweek = strweek + day + ' ' return strweek