def calc_(nongli): if nongli == 1: today = LunarDate.today() res = today.cn_month + today.cn_day return res if nongli == 0: cudate = datetime.datetime.now() res = cudate.strftime("%m-%d") return res
def main(list): # list = [ # ['12-25', 'test1'] #第一个是农历生日,第二个是名字 # ] # 获取今天的农历日期 today = LunarDate.today() year = today.year month = today.month day = today.day for i, name in list: i = i.split('-') tmpMonth = int(i[0]) tmpDay = int(i[1]) tmpNow = LunarDate(year, tmpMonth, tmpDay) # 今年的生日日期 if tmpNow < today: tmpNow = LunarDate(year + 1, tmpMonth, tmpDay) # 明年的生日日期 # print(tmpNow) dis = today - tmpNow dis = dis.days message = None if dis == 0: message = '今天' elif dis == -1: message = '明天' elif dis == -2: message = '后天' elif dis == -3: message = '大后天' # print(message, dis) # 若在范围内 if message: # 转化为公历 solarDay = tmpNow.to_solar_date() try: message = message + '是' + name + '的生日' + ' 具体日期是: ' + str( solarDay) facade.update(message, flag=True) except: pass else: facade.update(message=name + '的生日 今天不需要通知')
def notifyBirthday(self): # 距离生日7 、3 、1 、0天时通知 flag = False #标记今天没有人过生日 for name, birthday in self.__birthdayDict.items(): ##获取今天的农历日期 todayNongli = LunarDate.today() birthday = LunarDate(todayNongli.year, birthday.month, birthday.day, 0) #将生日的年份改成今年,方便计算还有多少天过生日,直接与当前农历日志相减 howMuchDays = birthday.offset - todayNongli.offset if (howMuchDays == 7 or howMuchDays == 3 or howMuchDays == 1 or howMuchDays == 0): text = '{name}的生日还有{howMuchDays}天,要祝福呦~。'.format( name=name, howMuchDays=howMuchDays) desp = '###{name},祝你生日快乐,健健康康~~'.format( name=name) # 内容支持markdown serverJiangNoify = ServerJiangNoify(text, desp) #初始化. print(serverJiangNoify.sendMessage()) flag = True #无人过生日 text = "加油工作,加油学习~" + str(time.time()) desp = "###没钱不行,没钱不行,没钱不行~" serverJiangNoify = ServerJiangNoify(text, desp) print(serverJiangNoify.sendMessage())
def test_comparison(self): ld = LunarDate(1976, 8, 8) ld2 = LunarDate.today() self.assertTrue(ld < ld2) self.assertTrue(ld <= ld2) self.assertTrue(ld2 > ld) self.assertTrue(ld2 >= ld) self.assertTrue(ld != ld2) self.assertFalse(ld == ld2) self.assertTrue(LunarDate.today() == LunarDate.today()) # Compare with a integer self.assertFalse(LunarDate.today() == 5) with self.assertRaises(TypeError): LunarDate.today() < 5 with self.assertRaises(TypeError): LunarDate.today() > 5 with self.assertRaises(TypeError): LunarDate.today() >= 5 with self.assertRaises(TypeError): LunarDate.today() >= 5
# borax==3.3.1 from borax.calendars.lunardate import LunarDate from 农历生日计算与提醒判断 import facade list = [ '12-26', # 农历生日 ] # 获取今天的农历日期 today = LunarDate.today() today_string = today.strftime('%m-%d') year = today.year month = today.month day = today.day for i in list: i = i.split('-') tmpMonth = int(i[0]) tmpDay = int(i[1]) tmpNow = LunarDate(year, tmpMonth, tmpDay) # print(tmpNow) dis = today - tmpNow dis = dis.days message = None if dis == 0: message = '今天' elif dis == -1: message = '明天' elif dis == -2:
def test_solar_and_lunar(self): ld = LunarDate.today() sd = ld.to_solar_date() self.assertEqual(ld.weekday(), sd.weekday()) self.assertEqual(ld.isoweekday(), sd.isoweekday())
def test_create_specific_dates(self): today = LunarDate.today() self.assertEqual(1, LCalendars.delta(LunarDate.tomorrow(), today)) self.assertEqual(-1, LCalendars.delta(LunarDate.yesterday(), today)) self.assertEqual(5, LCalendars.delta(today.after(5), today)) self.assertEqual(-5, LCalendars.delta(today.before(5), today))