回答編集履歴

2

Update

2022/05/23 15:05

投稿

melian
melian

スコア19825

test CHANGED
@@ -7,7 +7,7 @@
7
7
  b = datetime.strptime(today_year_month_day, '%Y%m%d')
8
8
  leapdays = calendar.leapdays(
9
9
  (a.year+1 if a.month >= 3 else a.year),
10
- (b.year if b.month == 1 or (b.month == 2 and b.day < 29) else b.year + 1))
10
+ (b.year if b.month == 1 or (b.month == 2 and b.day < 29) else b.year+1))
11
11
  return ((b - a).days - leapdays, b.date().strftime('%A'))
12
12
 
13
13
  if __name__ == '__main__':

1

Update

2022/05/23 15:00

投稿

melian
melian

スコア19825

test CHANGED
@@ -1,16 +1,19 @@
1
- ※ 以下、回答ではありませんが、うるう年を考慮する場合
2
1
  ```python
3
2
  from datetime import datetime
3
+ import calendar
4
4
 
5
5
  def calc_daycount_and_dayofweek(year_month_day, today_year_month_day):
6
6
  a = datetime.strptime(year_month_day, '%Y%m%d')
7
7
  b = datetime.strptime(today_year_month_day, '%Y%m%d')
8
+ leapdays = calendar.leapdays(
9
+ (a.year+1 if a.month >= 3 else a.year),
10
+ (b.year if b.month == 1 or (b.month == 2 and b.day < 29) else b.year + 1))
8
- return ((b - a).days, b.date().strftime('%A'))
11
+ return ((b - a).days - leapdays, b.date().strftime('%A'))
9
12
 
10
13
  if __name__ == '__main__':
11
14
  days_weeks = calc_daycount_and_dayofweek('19810101', '20220523')
12
15
  print(days_weeks)
13
16
 
14
17
  #
15
- (15117, 'Monday')
18
+ (15107, 'Monday')
16
19
  ```