回答編集履歴

3

以上・以下に対応

2018/04/07 11:56

投稿

hayataka2049
hayataka2049

スコア30933

test CHANGED
@@ -58,7 +58,7 @@
58
58
 
59
59
  # 判定して返す
60
60
 
61
- if this_year_summer_start < date < this_year_summer_end:
61
+ if this_year_summer_start <= date <= this_year_summer_end:
62
62
 
63
63
  return "summer"
64
64
 
@@ -98,8 +98,6 @@
98
98
 
99
99
  main()
100
100
 
101
-
102
-
103
101
  ```
104
102
 
105
103
 
@@ -109,3 +107,9 @@
109
107
  何回も呼ぶのであれば、3月第2日曜日と11月第1日曜日の計算はキャッシュされるような仕組みを作った方が良いかもしれません。
110
108
 
111
109
  以上未満がよくわからなかったのと、冬と夏は逆な気がしたので、とりあえずソースの通りの判定にしてあります。
110
+
111
+
112
+
113
+ ### 追記
114
+
115
+ 区間は以上・以下(第二・第一日曜日含む)とのことなのでそれに合わせて判定処理を修正しました。

2

ソース変数名修正(time→date)

2018/04/07 11:56

投稿

hayataka2049
hayataka2049

スコア30933

test CHANGED
@@ -10,9 +10,9 @@
10
10
 
11
11
  def check_summer_winter(date_str):
12
12
 
13
- time = datetime.datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")
13
+ date = datetime.datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")
14
14
 
15
- year = time.year
15
+ year = date.year
16
16
 
17
17
 
18
18
 
@@ -58,7 +58,7 @@
58
58
 
59
59
  # 判定して返す
60
60
 
61
- if this_year_summer_start < time < this_year_summer_end:
61
+ if this_year_summer_start < date < this_year_summer_end:
62
62
 
63
63
  return "summer"
64
64
 

1

コメント修正

2018/04/07 11:52

投稿

hayataka2049
hayataka2049

スコア30933

test CHANGED
@@ -36,7 +36,7 @@
36
36
 
37
37
 
38
38
 
39
- # 年の11月の第一日曜日を決める
39
+ # その年の11月の第一日曜日を決める
40
40
 
41
41
  this_year_summer_end = datetime.datetime(year, 11, 1)
42
42