为了账号安全,请及时绑定邮箱和手机立即绑定

Python中的长计数玛雅日期

Python中的长计数玛雅日期

忽然笑 2021-03-08 17:24:23
我需要编译一个可以将公历日期转换为玛雅日期的程序。我还需要使用01/01/1970作为参考日期。以下辅助功能可以正常工作,并且没有错误。# turns dates into tuplesdef dmj(date):""">>> dmj('01/01/1970')(1, 1, 1970)>>> dmj('00012+00012+02012')(12, 12, 2012)"""tup = ()for i in date:    if i.isdigit() == False and i != ' ':        date = date.replace(i, ' ')number_str = ''for i in date:    number_str += i    if i == ' ':        number = int(number_str)        tup += (number,)        number_str = ''tup += (int(number_str),)return tup# counts days that have passed since 01/01/1970def daysPassed(date):""">>> daysPassed('01/01/1970')0>>> daysPassed('20-7-1988')6775>>> daysPassed('00012+00012+02012')15686"""from datetime import datetup = dmj(date)begin = date(1970, 1, 1)end = date(tup[2], tup[1], tup[0])passed = abs(end - begin)        return passed.days我的想法是先计算自从1970年1月1日这个pictun(长度为20 baktuns)开始以来经过的天数,然后根据给定的日期添加自那时起经过的天数。在玛雅历法中,一天被称为亲属。它们的周期(一个pictun内)如下:20亲= 1小便; 18小便= 1 tun; 20 tun = 1 katun;20 katun = 1 baktun以长计数表示法,1970年1月1日的玛雅日期为'12 .17.16.7.5'。首先写Baktun,然后写katuns,等等。。。玛雅人的日期从0开始。基本上,小便的第一个亲戚是零,最后一个是19,总共二十。
查看完整描述

2 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

我可能已经找到了一些东西。


>>>mayanDate('15/01/1970')

'12/17/16/8/-1'

显然不可能。-1必须在此处为19,而8必须为7。这似乎太早了一个月。仍不知道为什么01/01/1970在这里仍然正确。不知道那一天有什么特别之处。


查看完整回答
反对 回复 2021-03-24
  • 2 回答
  • 0 关注
  • 211 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号