bitFlyer ビットコインを始めるなら安心・安全な取引所で

次回の「システム管理者感謝の日」は?

「システム管理者感謝の日」は毎年やってきます。
「システム管理者感謝の日」はいつなのか?が気になりますよね。
毎年7月最後の金曜日なので、毎年、日にちが少しづつ違っています。
そこで、未来の「システム管理者感謝の日」を調べるスクリプトをpython で作成しました。
これなら、100年先、200年先の「システム管理者感謝の日」を調べることが可能です。
以下がそのスクリプトです。2000年から、500年分の「システム管理者感謝の日」を表示します。

python スクリプト

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import datetime
import locale

# 2000年から、200年分の「システム管理者感謝の日」を調べる。
# 以下のようにして、実行して下さい。
# > python.exe .\checkSAD.py

# d        = datetime.date(1970,  1,  1)  # UNIX歴の最初の日をスタートとする。
d          = datetime.date(2000,  1,  1)  # 2000/1/1を検索のスタート日とする。
LastFriday = datetime.date(2000,  7,  6)  # 最初の「システム管理者感謝の日」
LastDay    = datetime.date(2200, 12, 31)

while LastDay > d:
   if d.month == 7 :   # 7月 で、金曜日であれば、その日を記録する。
      if d.weekday() == 4 :   # 0 : 月曜日, 1 : 火曜日, 2 : 水曜日, 3 : 木曜日, 4 : 金曜日, 5 : 土曜日, 6 : 日曜日
         LastFriday = d
   if d.month == 8 :   # 8月 になった時点で、記録されている日が7月最後の金曜日
      if None != LastFriday:
         print(LastFriday.strftime("%Y-%m-%d %A"))
         LastFriday = None         # この変数を初期化して、次の年の「システム管理者感謝の日」に備える。
   d = d + datetime.timedelta(days=1)

実行方法

スクリプトの実行方法は、以下のとおりです。

> python checkSAD.py

実行結果

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
2000-07-28 Friday
2001-07-27 Friday
2002-07-26 Friday
2003-07-25 Friday
2004-07-30 Friday
2005-07-29 Friday
2006-07-28 Friday
2007-07-27 Friday
2008-07-25 Friday
2009-07-31 Friday
2010-07-30 Friday
2011-07-29 Friday
2012-07-27 Friday
2013-07-26 Friday
2014-07-25 Friday
2015-07-31 Friday
2016-07-29 Friday
2017-07-28 Friday
2018-07-27 Friday
2019-07-26 Friday
2020-07-31 Friday
2021-07-30 Friday
2022-07-29 Friday
2023-07-28 Friday
2024-07-26 Friday
2025-07-25 Friday
2026-07-31 Friday
2027-07-30 Friday
2028-07-28 Friday
2029-07-27 Friday
2030-07-26 Friday
2031-07-25 Friday
2032-07-30 Friday
2033-07-29 Friday
2034-07-28 Friday
2035-07-27 Friday
2036-07-25 Friday
2037-07-31 Friday
2038-07-30 Friday
2039-07-29 Friday
2040-07-27 Friday
2041-07-26 Friday
2042-07-25 Friday
2043-07-31 Friday
2044-07-29 Friday
2045-07-28 Friday
2046-07-27 Friday
2047-07-26 Friday
2048-07-31 Friday
2049-07-30 Friday
2050-07-29 Friday
2051-07-28 Friday
2052-07-26 Friday
2053-07-25 Friday
2054-07-31 Friday
2055-07-30 Friday
2056-07-28 Friday
2057-07-27 Friday
2058-07-26 Friday
2059-07-25 Friday
2060-07-30 Friday
2061-07-29 Friday
2062-07-28 Friday
2063-07-27 Friday
2064-07-25 Friday
2065-07-31 Friday
2066-07-30 Friday
2067-07-29 Friday
2068-07-27 Friday
2069-07-26 Friday
2070-07-25 Friday
2071-07-31 Friday
2072-07-29 Friday
2073-07-28 Friday
2074-07-27 Friday
2075-07-26 Friday
2076-07-31 Friday
2077-07-30 Friday
2078-07-29 Friday
2079-07-28 Friday
2080-07-26 Friday
2081-07-25 Friday
2082-07-31 Friday
2083-07-30 Friday
2084-07-28 Friday
2085-07-27 Friday
2086-07-26 Friday
2087-07-25 Friday
2088-07-30 Friday
2089-07-29 Friday
2090-07-28 Friday
2091-07-27 Friday
2092-07-25 Friday
2093-07-31 Friday
2094-07-30 Friday
2095-07-29 Friday
2096-07-27 Friday
2097-07-26 Friday
2098-07-25 Friday
2099-07-31 Friday
2100-07-30 Friday
2101-07-29 Friday
2102-07-28 Friday
2103-07-27 Friday
2104-07-25 Friday
2105-07-31 Friday
2106-07-30 Friday
2107-07-29 Friday
2108-07-27 Friday
2109-07-26 Friday
2110-07-25 Friday
2111-07-31 Friday
2112-07-29 Friday
2113-07-28 Friday
2114-07-27 Friday
2115-07-26 Friday
2116-07-31 Friday
2117-07-30 Friday
2118-07-29 Friday
2119-07-28 Friday
2120-07-26 Friday
2121-07-25 Friday
2122-07-31 Friday
2123-07-30 Friday
2124-07-28 Friday
2125-07-27 Friday
2126-07-26 Friday
2127-07-25 Friday
2128-07-30 Friday
2129-07-29 Friday
2130-07-28 Friday
2131-07-27 Friday
2132-07-25 Friday
2133-07-31 Friday
2134-07-30 Friday
2135-07-29 Friday
2136-07-27 Friday
2137-07-26 Friday
2138-07-25 Friday
2139-07-31 Friday
2140-07-29 Friday
2141-07-28 Friday
2142-07-27 Friday
2143-07-26 Friday
2144-07-31 Friday
2145-07-30 Friday
2146-07-29 Friday
2147-07-28 Friday
2148-07-26 Friday
2149-07-25 Friday
2150-07-31 Friday
2151-07-30 Friday
2152-07-28 Friday
2153-07-27 Friday
2154-07-26 Friday
2155-07-25 Friday
2156-07-30 Friday
2157-07-29 Friday
2158-07-28 Friday
2159-07-27 Friday
2160-07-25 Friday
2161-07-31 Friday
2162-07-30 Friday
2163-07-29 Friday
2164-07-27 Friday
2165-07-26 Friday
2166-07-25 Friday
2167-07-31 Friday
2168-07-29 Friday
2169-07-28 Friday
2170-07-27 Friday
2171-07-26 Friday
2172-07-31 Friday
2173-07-30 Friday
2174-07-29 Friday
2175-07-28 Friday
2176-07-26 Friday
2177-07-25 Friday
2178-07-31 Friday
2179-07-30 Friday
2180-07-28 Friday
2181-07-27 Friday
2182-07-26 Friday
2183-07-25 Friday
2184-07-30 Friday
2185-07-29 Friday
2186-07-28 Friday
2187-07-27 Friday
2188-07-25 Friday
2189-07-31 Friday
2190-07-30 Friday
2191-07-29 Friday
2192-07-27 Friday
2193-07-26 Friday
2194-07-25 Friday
2195-07-31 Friday
2196-07-29 Friday
2197-07-28 Friday
2198-07-27 Friday
2199-07-26 Friday
2200-07-25 Friday
2201-07-31 Friday
2202-07-30 Friday
2203-07-29 Friday
2204-07-27 Friday
2205-07-26 Friday
2206-07-25 Friday
2207-07-31 Friday
2208-07-29 Friday
2209-07-28 Friday
2210-07-27 Friday
2211-07-26 Friday
2212-07-31 Friday
2213-07-30 Friday
2214-07-29 Friday
2215-07-28 Friday
2216-07-26 Friday
2217-07-25 Friday
2218-07-31 Friday
2219-07-30 Friday
2220-07-28 Friday
2221-07-27 Friday
2222-07-26 Friday
2223-07-25 Friday
2224-07-30 Friday
2225-07-29 Friday
2226-07-28 Friday
2227-07-27 Friday
2228-07-25 Friday
2229-07-31 Friday
2230-07-30 Friday
2231-07-29 Friday
2232-07-27 Friday
2233-07-26 Friday
2234-07-25 Friday
2235-07-31 Friday
2236-07-29 Friday
2237-07-28 Friday
2238-07-27 Friday
2239-07-26 Friday
2240-07-31 Friday
2241-07-30 Friday
2242-07-29 Friday
2243-07-28 Friday
2244-07-26 Friday
2245-07-25 Friday
2246-07-31 Friday
2247-07-30 Friday
2248-07-28 Friday
2249-07-27 Friday
2250-07-26 Friday
2251-07-25 Friday
2252-07-30 Friday
2253-07-29 Friday
2254-07-28 Friday
2255-07-27 Friday
2256-07-25 Friday
2257-07-31 Friday
2258-07-30 Friday
2259-07-29 Friday
2260-07-27 Friday
2261-07-26 Friday
2262-07-25 Friday
2263-07-31 Friday
2264-07-29 Friday
2265-07-28 Friday
2266-07-27 Friday
2267-07-26 Friday
2268-07-31 Friday
2269-07-30 Friday
2270-07-29 Friday
2271-07-28 Friday
2272-07-26 Friday
2273-07-25 Friday
2274-07-31 Friday
2275-07-30 Friday
2276-07-28 Friday
2277-07-27 Friday
2278-07-26 Friday
2279-07-25 Friday
2280-07-30 Friday
2281-07-29 Friday
2282-07-28 Friday
2283-07-27 Friday
2284-07-25 Friday
2285-07-31 Friday
2286-07-30 Friday
2287-07-29 Friday
2288-07-27 Friday
2289-07-26 Friday
2290-07-25 Friday
2291-07-31 Friday
2292-07-29 Friday
2293-07-28 Friday
2294-07-27 Friday
2295-07-26 Friday
2296-07-31 Friday
2297-07-30 Friday
2298-07-29 Friday
2299-07-28 Friday
2300-07-27 Friday
2301-07-26 Friday
2302-07-25 Friday
2303-07-31 Friday
2304-07-29 Friday
2305-07-28 Friday
2306-07-27 Friday
2307-07-26 Friday
2308-07-31 Friday
2309-07-30 Friday
2310-07-29 Friday
2311-07-28 Friday
2312-07-26 Friday
2313-07-25 Friday
2314-07-31 Friday
2315-07-30 Friday
2316-07-28 Friday
2317-07-27 Friday
2318-07-26 Friday
2319-07-25 Friday
2320-07-30 Friday
2321-07-29 Friday
2322-07-28 Friday
2323-07-27 Friday
2324-07-25 Friday
2325-07-31 Friday
2326-07-30 Friday
2327-07-29 Friday
2328-07-27 Friday
2329-07-26 Friday
2330-07-25 Friday
2331-07-31 Friday
2332-07-29 Friday
2333-07-28 Friday
2334-07-27 Friday
2335-07-26 Friday
2336-07-31 Friday
2337-07-30 Friday
2338-07-29 Friday
2339-07-28 Friday
2340-07-26 Friday
2341-07-25 Friday
2342-07-31 Friday
2343-07-30 Friday
2344-07-28 Friday
2345-07-27 Friday
2346-07-26 Friday
2347-07-25 Friday
2348-07-30 Friday
2349-07-29 Friday
2350-07-28 Friday
2351-07-27 Friday
2352-07-25 Friday
2353-07-31 Friday
2354-07-30 Friday
2355-07-29 Friday
2356-07-27 Friday
2357-07-26 Friday
2358-07-25 Friday
2359-07-31 Friday
2360-07-29 Friday
2361-07-28 Friday
2362-07-27 Friday
2363-07-26 Friday
2364-07-31 Friday
2365-07-30 Friday
2366-07-29 Friday
2367-07-28 Friday
2368-07-26 Friday
2369-07-25 Friday
2370-07-31 Friday
2371-07-30 Friday
2372-07-28 Friday
2373-07-27 Friday
2374-07-26 Friday
2375-07-25 Friday
2376-07-30 Friday
2377-07-29 Friday
2378-07-28 Friday
2379-07-27 Friday
2380-07-25 Friday
2381-07-31 Friday
2382-07-30 Friday
2383-07-29 Friday
2384-07-27 Friday
2385-07-26 Friday
2386-07-25 Friday
2387-07-31 Friday
2388-07-29 Friday
2389-07-28 Friday
2390-07-27 Friday
2391-07-26 Friday
2392-07-31 Friday
2393-07-30 Friday
2394-07-29 Friday
2395-07-28 Friday
2396-07-26 Friday
2397-07-25 Friday
2398-07-31 Friday
2399-07-30 Friday
2400-07-28 Friday
2401-07-27 Friday
2402-07-26 Friday
2403-07-25 Friday
2404-07-30 Friday
2405-07-29 Friday
2406-07-28 Friday
2407-07-27 Friday
2408-07-25 Friday
2409-07-31 Friday
2410-07-30 Friday
2411-07-29 Friday
2412-07-27 Friday
2413-07-26 Friday
2414-07-25 Friday
2415-07-31 Friday
2416-07-29 Friday
2417-07-28 Friday
2418-07-27 Friday
2419-07-26 Friday
2420-07-31 Friday
2421-07-30 Friday
2422-07-29 Friday
2423-07-28 Friday
2424-07-26 Friday
2425-07-25 Friday
2426-07-31 Friday
2427-07-30 Friday
2428-07-28 Friday
2429-07-27 Friday
2430-07-26 Friday
2431-07-25 Friday
2432-07-30 Friday
2433-07-29 Friday
2434-07-28 Friday
2435-07-27 Friday
2436-07-25 Friday
2437-07-31 Friday
2438-07-30 Friday
2439-07-29 Friday
2440-07-27 Friday
2441-07-26 Friday
2442-07-25 Friday
2443-07-31 Friday
2444-07-29 Friday
2445-07-28 Friday
2446-07-27 Friday
2447-07-26 Friday
2448-07-31 Friday
2449-07-30 Friday
2450-07-29 Friday
2451-07-28 Friday
2452-07-26 Friday
2453-07-25 Friday
2454-07-31 Friday
2455-07-30 Friday
2456-07-28 Friday
2457-07-27 Friday
2458-07-26 Friday
2459-07-25 Friday
2460-07-30 Friday
2461-07-29 Friday
2462-07-28 Friday
2463-07-27 Friday
2464-07-25 Friday
2465-07-31 Friday
2466-07-30 Friday
2467-07-29 Friday
2468-07-27 Friday
2469-07-26 Friday
2470-07-25 Friday
2471-07-31 Friday
2472-07-29 Friday
2473-07-28 Friday
2474-07-27 Friday
2475-07-26 Friday
2476-07-31 Friday
2477-07-30 Friday
2478-07-29 Friday
2479-07-28 Friday
2480-07-26 Friday
2481-07-25 Friday
2482-07-31 Friday
2483-07-30 Friday
2484-07-28 Friday
2485-07-27 Friday
2486-07-26 Friday
2487-07-25 Friday
2488-07-30 Friday
2489-07-29 Friday
2490-07-28 Friday
2491-07-27 Friday
2492-07-25 Friday
2493-07-31 Friday
2494-07-30 Friday
2495-07-29 Friday
2496-07-27 Friday
2497-07-26 Friday
2498-07-25 Friday
2499-07-31 Friday
2500-07-30 Friday