指定された曜日をどう判断するか--Python

1325 ワード

ここでは、次の3つの方法を参照してください.
一、公式法
定式化は、1900年1月1日(月)を起点として計算され、2つの日付の間に隔てる日数を、1週間7日の周期で指定された日付を曜日と判断します.この方法は多くのプログラミング言語に適用され,python言語の特色を持たない.
mon_days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
y = 2019
m = 7
d = 17

sum_days = 0
# 1900           
for i in range(1900, y):
    if (i % 4 == 0 and i % 100 != 0) or i % 400 == 0:
        sum_days += 366
    else:
        sum_days += 365

# 2019            
for i in range(1, m):
    if i != 2:
        sum_days += mon_days[i-1]
    else:
        if(y % 4 == 0 and y % 100 != 0) or y % 400 == 0:
            sum_days = sum_days + mon_days[i-1]+1
        else:
            sum_days = sum_days + mon_days[i-1]

sum_days += d

week_day = 1+(sum_days-1)%7
print("%d %d %d    %d" % (y, m, d, week_day))

 
次に、2つのpythonの中で特色があり、曜日を簡単に計算する方法を見てみましょう.
方法2 datetime.weekday()
メソッド2 datetiemモジュールを使用してdatetimeオブジェクトを作成し、そのオブジェクトのweekday()メソッドを呼び出し、現在の指定日が曜日であることを直接求めます.このメソッドの戻り値は0-6です.
import datetime
day = datetime.datetime(2019, 7, 25)
print("  %d" % (day.weekday() + 1))

方法3
メソッド3はdatetimeオブジェクトのstrftime()メソッドを利用し,曜日を計算し,戻り値は1-7である.
import datetime
anyday = int(datetime.datetime(2019, 7, 25).strftime("%w"))
print("  %d"%(anyday))