計算某年某月某日是星期幾 Python

2021-09-25 12:59:31 字數 926 閱讀 7121

前提:公元1年1月1日是星期一
def data(y,m,d):

ans = 0

month = [31,29,31,30,31,30,31,31,30,31,30,31]

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

month[1] = 29

else:

month[1] = 28

for i in range(1,y): # 注意計算之前年的天數時要從1開始計算

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

ans += 366

# ans = ans % 7

else:

ans += 365

# ans = ans % 7

for i in range(m-1): # 這裡因為月份是由陣列表示的,從1月加到m-1月在陣列中就是從下標0加到下標m-2

ans += month[i]

# ans = ans % 7

ans += (d-1) # 這裡的d-1,是因為天數的計算是基於公元1年1月1日來計算的,所以d要減去1

return ans%7 # 最後這裡對7取餘也可以,如果計算的年數過多可以邊加天數,邊對7取餘,就像注釋掉的那些**一樣

或者基姆拉爾森公式

def data(y,m,d):

if(m==1 || m==2): # 1月、2月 要當成去年的13月和14月,因此y要減一

y -= 1, m += 12;

return (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1)%7

計算出某年某月某日是星期幾

如何精確地計算出某年某月某日是星期幾,這是乙個很讓人頭疼的事情,下面給出乙個公式 星期計算公式 年 年 4 年 400 年 100 年基數 月基數 日 7 餘星期幾 注 式中分數均取整 年基數,平年1,閏年2,月基數,1 平年 一月0,二月3,三月3,四月6,五月1,六月4,七月0,八月3,九月5,...

某年某月某日是該年的第幾天

該程式主要是邏輯判斷 閏年的判別能被4 整除且不能被100整除或者能被400整除 if 0 year 4 0 year 100 0 year 400 include int main void void sum day int year,int mon,int day sday sday day p...

某年某月某日屬於某月的第幾周

有人在php版問 某月某日所對應的週數應該怎麼做.比如9月8號,對應的是本月的第幾周.演算法 1 m x年y月1日前空著的天數。比如,用windows看今天是2008年9月12日,本月1日前空著1天,所以m 1。2 w x年y月z日是y月的第w周。x 2008 y 9 z 12 m date n s...