日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python生成日历书上哪里错了_python生成日历 - osc_a5pzxo31的个人空间 - OSCHINA - 中文开源技术交流社区...

發(fā)布時(shí)間:2025/4/5 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python生成日历书上哪里错了_python生成日历 - osc_a5pzxo31的个人空间 - OSCHINA - 中文开源技术交流社区... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

日歷是以1900年1月1日 為基礎(chǔ)的?那天的星期1是

# 判斷是否是閏年

def rn(i):

# 判斷是不是閏年

if (i % 400 == 0) or (i % 4 == 0 and i % 100 != 0):

return True

else:

return False

# 計(jì)算總天數(shù)

def days(y, m):

# 總年數(shù)

leap_year = []

common_year = []

for i in range(1900, y):

if rn(i):

leap_year.append(i)

else:

common_year.append(i)

# 本年之前總天數(shù)

y_days = 366*len(leap_year) + 365*len(common_year)

# 本年本月之前總天數(shù)

m_days = 0

if m == 1:

m_days = 0

elif m == 2:

m_days = 31

elif m == 3:

if rn(y):

m_days = 60

else:

m_days = 59

elif m == 4:

if rn(y):

m_days = 91

else:

m_days = 90

elif m == 5:

if rn(y):

m_days = 121

else:

m_days = 120

elif m == 6:

if rn(y):

m_days = 151

else:

m_days = 150

elif m == 7:

if rn(y):

m_days = 182

else:

m_days = 181

elif m == 8:

if rn(y):

m_days = 213

else:

m_days = 212

elif m == 9:

if rn(y):

m_days = 244

else:

m_days = 243

elif m == 10:

if rn(y):

m_days = 274

else:

m_days = 273

elif m == 11:

if rn(y):

m_days = 305

else:

m_days = 304

elif m == 12:

if rn(y):

m_days = 335

else:

m_days = 334

all_days = y_days + m_days

return all_days

# 判斷本月第一天是星期數(shù)

def f_day(all_days):

week = 0

if all_days % 7 == 0:

week = 1

elif all_days % 7 == 1:

week = 2

elif all_days % 7 == 2:

week = 3

elif all_days % 7 == 3:

week = 4

elif all_days % 7 == 4:

week = 5

elif all_days % 7 == 5:

week = 6

elif all_days % 7 == 6:

week = 7

return week

# 判斷需要顯示月份當(dāng)月天數(shù)

def m_d(y, m):

m_30 = [4, 6, 8, 9, 11]

m_31 = [1, 3, 5, 7, 8, 10, 12]

if rn(y) and m == 2:

m_day = 29

else:

if m in m_31:

m_day = 31

elif m in m_30:

m_day = 30

else:

m_day = 28

return m_day

# 打印日歷

def cal(m_day, week):

# 第一行

# print(m_day)

s1 = '星期日' + 3*' ' + '星期一' + 3*' ' + '星期二' + 3*' ' + '星期三' + 3*' ' + '星期四' + 3*' ' + '星期五' + 3*' ' + '星期六'

print(s1)

if week == 7:

for i in range(1, m_day+1):

if i < 10:

s = 2 * ' ' + str(i) + 4 * ' '

else:

s = 2 * ' ' + str(i) + 3 * ' '

print(s, end='')

if (i + len(s)) % 7 == 0:

print('')

else:

# week不是星期日的,需要往后移動(dòng)week個(gè)位置

print(8*week*' ', end='')

for i in range(1, m_day+1):

if i < 10:

s = 3 * ' ' + str(i) + 4 * ' '

else:

s = 3 * ' ' + str(i) + 3 * ' '

print(s, end='')

if (week + i) % 7 == 0:

print('')

if __name__ == '__main__':

y = int(input('請輸入年份'))

m = int(input('請輸入月份'))

all_days = days(y, m)

week = f_day(all_days)

print(week)

m_day = m_d(y, m)

print(m_day)

cal(m_day, week)

總結(jié)

以上是生活随笔為你收集整理的python生成日历书上哪里错了_python生成日历 - osc_a5pzxo31的个人空间 - OSCHINA - 中文开源技术交流社区...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。