Python万年历干支纪年版 | 寒山烟雨
现在的位置: 首页 > 小试身手 > 正文

Python万年历干支纪年版

2011年12月27日 小试身手 ⁄ 共 863字 ⁄ 字号 评论 4 条 ⁄ 阅读 5,948 views 次

只是对上一个版本有个小的改进,添加了干支纪年和生肖,只做估算用。

 Python | 
 
 copy code |
?

01
#!/usr/bin/env python3
02
def run(m):
03
    if m%100==0:
04
        if m%400==0:
05
            return 29
06
        else:
07
            return 28
08
    else:
09
        if year%4==0:
10
            return 29
11
        else:
12
            return 28
13
 
14
print("万年历Python版")
15
year=int(input("请输入年份:"))
16
month=int(input("请输入月份:"))
17
 
18
c=int(year/100)
19
y=year-c*100
20
if month<=2:
21
    month+=12
22
    y-=1
23
w=int(c/4)-2*c+int(y/4)+y+int(13*(month+1)/5)
24
while w<0:
25
    w+=7
26
i=w%7
27
 
28
if month==1 or month==3 or month==5 or month==7 or month==8 or month==10 or month==12:
29
    day=31
30
else:
31
    if month==4 or month==6 or month==9 or month==11:
32
        day=30
33
    else:
34
        day=run(year)
35
 
36
dizhi=['子鼠','丑牛','寅虎','卯兔','辰龙','巳蛇','午马','未羊','申猴','酉鸡','戌狗','亥猪']
37
tiangan=['甲','乙','丙','丁','戊','己','庚','辛','壬','癸']
38
 
39
tg=year%10-4
40
dz=year%12-4
41
if tg<0:
42
    tg=tg+10
43
if dz<0:
44
    dz=dz+12
45
print(year,"是",tiangan[tg],dizhi[dz],"年")
46
 
47
print("  S  M  T  W  T  F  S")
48
n=1
49
for j in [1,2,3,4,5,6]:
50
    for k in [1,2,3,4,5,6,7]:
51
        if j==1 and ((j-1)*5+k-1)<i:
52
            print('   ',end='')
53
        else:
54
            if n<=day:
55
                print("%3d" % n,end='')
56
                n+=1
57
    print()
58
input("Press <Enter> to end")

0

目前有 4 条留言    访客:3 条, 博主:1 条

  1. maplebeats 2011年12月31日 上午10:53  @回复  Δ-49楼 回复
    Google Chrome Google Chrome Windows Windows

    我的python书在还在路上 !-o

  2. tusooa 2011年12月29日 下午5:00  @回复  Δ-48楼 回复
    Firefox Firefox GNU/Linux GNU/Linux

    w=int(c/4)-2*c+int(y/4)+y+int(13*(month+1)/5)
    咋还这样用额。


    • 管理员
      hsyyf 2011年12月29日 下午5:10  @回复  ∇地下1层 回复
      UC Browser UC Browser GNU/Linux GNU/Linux

      py3.0,除法有点小别扭。。。

      • tusooa 2011年12月30日 下午6:27  @回复  ∇地下2层 回复
        Firefox Firefox GNU/Linux GNU/Linux

        不是有localtime这样的么。咋会这样计算星期。

给我留言

留言无头像?


×