星座是看公历还是农历 农历0827是什么星座( 三 )

当然 , 这个 js 文件里面还有好多其他诸如计算星期、节假日之类的方法 , 我们可以把这个 js 里面的方法实现用 python 来实现就可以计算出农历日期以及节假日之类的信息了 。 但是我的时间比较紧迫 , 所以我选择用最简单的办法——百度 。 将度娘里面别人写的方法直接拿来用 , 就不用重复造轮子了 。
搜索可以发现好多计算万年历信息的方法 , 我从其中选取了一个作为工具类来用 。
前奏已经弄完了 , 接下来就好办了 , 我们来看看代码怎么写 。
第一步是获取某一年每天的信息:
def get_data(year):    url = 'https://staticwnl.tianqistatic.com/Public/Home/js/api/yjs/%d.js' % year    response = requests.get(url)    text = response.text    start_str = 'lmanac["%d"] =' % year    his_end_str = ';if(typeof(lmanac_2345)!="undefined"){lmanac_2345();}'    cur_end_str = ';if(typeof(lmanac_2345)!="undefined"){lmanac_2345()};'    cur_year = datetime.datetime.now().year    jsonstr = text.replace(start_str, '')    if cur_year == year:        jsonstr = jsonstr.replace(cur_end_str, '')    else:        jsonstr = jsonstr.replace(his_end_str, '')    return jsonstr    这里需要注意的是 , 获取到的结果数据在 JSON 数据的前后都加了字符串干扰信息 , 我们需要将这些字符串给去掉才能解析 JSON 。
你以为这样就完了吗?是不是发现用解析2021年的数据的方法去2020年的数据不行?你没看错 , 这里网站开发人员开了一个小玩笑 , 他们把结尾字符串里面的一个分号换了个位置 。 据我仔细观察发现 , 当年的返回结果中这个分号是在最后的 , 而其他年份的返回数据中这个分号是在大括号里面的 。
获取到数据之后 , 我们就来计算日期:
def choose_day(year, jsonstr):    jobj = json.loads(jsonstr)    for day in jobj.keys():        y = jobj[day]['y']        if '嫁娶' in y:            dtime = datetime.datetime(year, int(day[1:3]), int(day[3:5]))            # 获取农历日期            ludar_date = lunarUtils.get_ludar_date(dtime)            # 取得日 , 然后看是否是双数            if ludar_date[2] % 2 == 0:               print('公历日期:%s , 农历日期:%s' % (day, ludar_date))这里面就相对比较简单了 , 先解析返回的 JSON 数据 , 然后遍历日期 , 获取每天的信息 , 看哪天宜“嫁娶” , 就再获取这天的农历日期 , 看是不是双数 , 如果是的话 , 这就是我们的目标日期 。
我最后获得的日期是这样子的:
公历日期:d0107 , 农历日期:(2020, 11, 24)公历日期:d0122 , 农历日期:(2020, 12, 10)公历日期:d0124 , 农历日期:(2020, 12, 12)公历日期:d0126 , 农历日期:(2020, 12, 14)公历日期:d0203 , 农历日期:(2020, 12, 22)公历日期:d0209 , 农历日期:(2020, 12, 28)公历日期:d0225 , 农历日期:(2021, 1, 14)公历日期:d0305 , 农历日期:(2021, 1, 22)公历日期:d0311 , 农历日期:(2021, 1, 28)公历日期:d0318 , 农历日期:(2021, 2, 6)公历日期:d0324 , 农历日期:(2021, 2, 12)公历日期:d0401 , 农历日期:(2021, 2, 20)公历日期:d0419 , 农历日期:(2021, 3, 8)公历日期:d0425 , 农历日期:(2021, 3, 14)公历日期:d0507 , 农历日期:(2021, 3, 26)公历日期:d0513 , 农历日期:(2021, 4, 2)公历日期:d0525 , 农历日期:(2021, 4, 14)公历日期:d0531 , 农历日期:(2021, 4, 20)公历日期:d0606 , 农历日期:(2021, 4, 26)公历日期:d0613 , 农历日期:(2021, 5, 4)公历日期:d0617 , 农历日期:(2021, 5, 8)公历日期:d0619 , 农历日期:(2021, 5, 10)公历日期:d0625 , 农历日期:(2021, 5, 16)公历日期:d0701 , 农历日期:(2021, 5, 22)公历日期:d0711 , 农历日期:(2021, 6, 2)公历日期:d0713 , 农历日期:(2021, 6, 4)公历日期:d0717 , 农历日期:(2021, 6, 8)公历日期:d0723 , 农历日期:(2021, 6, 14)公历日期:d0725 , 农历日期:(2021, 6, 16)公历日期:d0729 , 农历日期:(2021, 6, 20)公历日期:d0804 , 农历日期:(2021, 6, 26)公历日期:d0811 , 农历日期:(2021, 7, 4)公历日期:d0813 , 农历日期:(2021, 7, 6)公历日期:d0815 , 农历日期:(2021, 7, 8)公历日期:d0823 , 农历日期:(2021, 7, 16)公历日期:d0827 , 农历日期:(2021, 7, 20)公历日期:d0914 , 农历日期:(2021, 8, 8)公历日期:d0926 , 农历日期:(2021, 8, 20)公历日期:d1013 , 农历日期:(2021, 9, 8)公历日期:d1015 , 农历日期:(2021, 9, 10)公历日期:d1025 , 农历日期:(2021, 9, 20)公历日期:d1029 , 农历日期:(2021, 9, 24)公历日期:d1106 , 农历日期:(2021, 10, 2)公历日期:d1110 , 农历日期:(2021, 10, 6)公历日期:d1112 , 农历日期:(2021, 10, 8)公历日期:d1116 , 农历日期:(2021, 10, 12)公历日期:d1124 , 农历日期:(2021, 10, 20)公历日期:d1130 , 农历日期:(2021, 10, 26)公历日期:d1207 , 农历日期:(2021, 11, 4)公历日期:d1211 , 农历日期:(2021, 11, 8)公历日期:d1219 , 农历日期:(2021, 11, 16)公历日期:d1223 , 农历日期:(2021, 11, 20)公历日期:d1231 , 农历日期:(2021, 11, 28)


以上关于本文的内容,仅作参考!温馨提示:如遇专业性较强的问题(如:疾病、健康、理财等),还请咨询专业人士给予相关指导!

「辽宁龙网」www.liaoninglong.com小编还为您精选了以下内容,希望对您有所帮助: