äºçŽã·ã¹ãã ããã°éèšããªãã€ã³ããŒããã€ã³ãæå¹æéã宿å®è¡ã¹ã¯ãªããââã¢ããªãäœãããšãããšãå¿ ããšèšã£ãŠããã»ã©ãæ¥ä»ãšæéããæ±ãå Žé¢ã«åºäŒããŸããð
Pythonã«ã¯æšæºã©ã€ãã©ãªãšã㊠datetime ã¢ãžã¥ãŒã«ãçšæãããŠãããããã䜿ãããªããã ãã§ãæ¥ã
ã®ã³ãŒãã£ã³ã°ã®å¹
ããã£ãšåºãããŸãã仿¥ããããªãã®ã³ãŒãã«ãæéãæãåããå ããŠãããŸããããâ°
Pythonã® datetime ã¢ãžã¥ãŒã«ã«ã¯å€§ãã3ã€ã®ãªããžã§ã¯ãããããŸãã圹å²ãæŽçããŠãããšãåŸã®çè§£ãã¹ã ãŒãºã§ãã
ãããããã®ã§ãããã¢ãžã¥ãŒã«åãdatetimeããã®äžã®ã¯ã©ã¹åãdatetimeã§ããimportæãæžããšãã¯æ··ä¹±ããªãããã«æ°ãã€ããŸããããâïž
from datetime import date
t = date.today()
print(t) # äŸ: 2025-06-13
date.today() ã§ä»æ¥ã®æ¥ä»ã® dateãªããžã§ã¯ã ãè¿ã£ãŠããŸããæååã§ã¯ãªããªããžã§ã¯ããªã®ã§ãåŸã§èšç®ã屿§ã¢ã¯ã»ã¹ãã§ããŸããð
dateãªããžã§ã¯ã㯠yearã»monthã»day ããããã£ã§åèŠçŽ ã«ã¢ã¯ã»ã¹ã§ããŸããææ¥ãç¥ããããšã㯠weekday() ã¡ãœããã䟿å©ã0ãææã1ãç«æâŠâŠ6ãæ¥æã«å¯Ÿå¿ããŸãã
from datetime import date
d = date(2020, 12, 24)
print(d.year, d.month, d.day) # 2020 12 24
print(d.weekday()) # 3 â æšææ¥
æå»ã ããå¿
èŠãªãšã㯠time ãªããžã§ã¯ãã䜿ããŸããåŒæ°ã¯é çªã«ãæã»åã»ç§ã»ãã€ã¯ãç§ããæå®ããªãã£ãéšåã¯èªåçã«0ãå
¥ããŸãã
from datetime import time
t = time(14, 30)
print(t.hour, t.minute, t.second, t.microsecond)
# 14 30 0 0
from datetime import datetime
now = datetime.now()
print(now) # äŸ: 2025-06-13 14:23:05.123456
datetime.now() ã¯ãã€ã¯ãç§ãŸã§å«ããçŸåšæå»ãè¿ããŸããããããã£ã§ yearã»monthã»dayã»hourã»minuteã»secondã»microsecond ã«ããããã¢ã¯ã»ã¹ã§ããŸãã
åŒæ°ã¯ãå¹Žã»æã»æ¥ã»æã»åã»ç§ã»ãã€ã¯ãç§ãã®é ãæ¥ä»ã®éšåïŒå¹Žææ¥ïŒã¯çç¥ã§ããŸããããæé以éã¯çç¥å¯èœã§ãçç¥ããéšåã¯0ã«ãªããŸãã
from datetime import datetime
d = datetime(2020, 12, 25, 14, 11)
print(d) # 2020-12-25 14:11:00
datetimeãªããžã§ã¯ãå士ãåŒãç®ãããšãå·®åã衚ã timedelta ãªããžã§ã¯ããè¿ããŸãã.days ããããã£ã§æ¥æ°å·®ãåããŸãã
from datetime import datetime
d1 = datetime(2020, 12, 25)
d2 = datetime(2020, 11, 25)
diff = d1 - d2
print(diff.days) # 30
éã«ãtimedelta ã datetime ã«è¶³ãã°ãæå®ããæ¥æ°ã»æéåŸã®æ¥æãåŸãããŸãã
from datetime import datetime, timedelta
d = datetime(2020, 12, 25, 3, 0)
future = d + timedelta(days=10)
print(future) # 2021-01-04 03:00:00
åŒæ°ã¯ daysã»hoursã»minutesã»secondsã»microsecondsã»weeks ãªã©ãç§åäœã®å·®åãåã£ãŠæéã«å€æãããšã㯠diff.seconds ã䜿ããŸããâ¡
ã€ã®ãªã¹ã®æ8æã𿥿¬ã®æ8æã¯åãç¬éã§ã¯ãããŸãããæµ·å€ãŠãŒã¶ãŒãããã¢ããªãäœããšãããçŸå°æéã®æ8æã«éç¥ãåºãããããšãã£ãåŠçã«ã¯ã¿ã€ã ãŸãŒã³ç®¡çãæ¬ ãããŸãããð
äžçã®æéã®åºæºãšãªãã®ãUTCïŒåå®äžçæïŒãæ¥æ¬æšæºæïŒJSTïŒã¯UTCãã9æéé²ãã§ããŸãïŒUTC+9ïŒãPythonã§ã¿ã€ã ãŸãŒã³ãèšå®ããã«ã¯ timezone ãªããžã§ã¯ãã䜿ããŸãã
from datetime import datetime, timezone, timedelta
JST = timezone(timedelta(hours=+9))
d = datetime(2025, 6, 13, 10, 0, tzinfo=JST)
print(d) # 2025-06-13 10:00:00+09:00
åºåã®æ«å°Ÿã« +09:00 ãä»ããŠããããšã«æ³šç®ããŠãã ãããããããUTCãã9æéé²ãã§ããããšããã¿ã€ã ãŸãŒã³æ
å ±ããããããããªããã§ãåã衚瀺ã§ãå
éšçãªæ±ãããŸã£ããéããŸããð¡ïž
weekday() ã§åæ¥å€å®ã¯ã§ããŸããããŽãŒã«ãã³ãŠã£ãŒã¯ããæ£æãªã©ã®ç¥æ¥ãŸã§å«ããäŒæ¥å€å®ã¯æšæºã©ã€ãã©ãªã§ã¯æã«è² ããŸãããããã§æŽ»èºããã®ãå€éšã©ã€ãã©ãª jpholiday ã§ããâš
pip install jpholiday
import jpholiday
from datetime import date
print(jpholiday.is_holiday(date(2021, 5, 3)))
# True
print(jpholiday.is_holiday_name(date(2021, 5, 3)))
# æ²æ³èšå¿µæ¥
import jpholiday
holidays = jpholiday.year_holidays(2021)
for d, name in holidays:
print(d, name)
æ»ãå€ã¯ãdate ãªããžã§ã¯ããšç¥æ¥åã®ã¿ãã«ãã®ãªã¹ãããäŒæ¥éå®ãã£ã³ããŒã³ããç¥æ¥ã«ã¬ã³ããŒè¡šç€ºããªã©ã®å®è£ ãäžæ°ã«ã©ã¯ã«ãªããŸããð
æ¥æ¬ã®ç¥æ¥ã¯å¹Žã«ãã£ãŠå¢æžã»ç§»åãããããjpholidayã¯ææ°çã«ã¢ããããŒãããŠãã䜿ãã®ãéåãpip install -U jpholiday ã§ææ°åã§ããŸããâ ïž æ¥ä»ã»æéã®æäœã¯å®åã§åºçªãå€ããåŒãåºããå¢ããã»ã©éçºå¹çãäžãããŸããæå ã«è¯æžã眮ããŠãããšãã€ãŸããããšãã®å®å¿æãéããŸãã
ææ³ããæšæºã©ã€ãã©ãªã®äœ¿ãæ¹ãŸã§äœç³»çã«åŠã¹ãå®çªæžãdatetimeãå«ããåºæ¬æ©èœã®å šäœåãæŽããŸãã
æšæºã©ã€ãã©ãªã®æŽ»çšæ³ãæ·±ãåŠã¹ã1åãdatetimeã®åšèŸºã©ã€ãã©ãªãã€ã³ããŒãæã®èœãšã穎ãŸã§èªç¶ã«èº«ã«ã€ããŸãã
pandasã®æç³»ååŠçã¯æ¥ä»æäœã®å¿çšç·šãæ¥ä»åŠçã«æ £ãããããã²ããŒã¿åæã®äžçãžã
æ¥ä»åŠçã¯èªååã¹ã¯ãªããã§ãé »åºããã¡ã€ã«åãžã®æ¥ä»ä»äžã宿åŠçãã¬ããŒãçæãªã©å®çšäŸã®å®åº«ã§ãã
æ¥ä»åŠçã®è©Šè¡é¯èª€ã¯æå€ãšã¿ã€ãã³ã°ãå€ãäœæ¥ãæéµæãè¯ãè€æ°ããã€ã¹åæ¿å¯Ÿå¿ã®äžå°ããããšãåŠç¿ãå®è£ ãæ°æã¡ããé²ã¿ãŸãã
ã¢ãžã¥ãŒã«åãšã¯ã©ã¹åãåãããèµ·ããæ··ä¹±ã§ããfrom datetime import datetime, date, time, timedelta, timezone ã®ããã«ãŸãšããŠã€ã³ããŒãããŠãããšãã³ãŒããã¹ãããªããŸããæ
£ãããŸã§ã¯æ
éã«ãð
weekday() ã¯ææ=0ãæ¥æ=6ãisoweekday() ã¯ææ=1ãæ¥æ=7ã§ããISO8601èŠæ Œã«åŸãããå Žå㯠isoweekday() ã䜿ããšèªç¶ã§ãã
æšæºã® timedelta ã¯æ¥ã»æã»åã»ç§ãŸã§ããæ±ããŸãããã3ãæåŸãã1幎åãã®ãããªæã»å¹Žåäœã®èšç®ã«ã¯ãå€éšã©ã€ãã©ãª dateutil ã® relativedelta ã䜿ãã®ãå®çªã§ããâš
ãnaiveïŒã¿ã€ã ãŸãŒã³æ å ±ãªãïŒããªdatetimeã«ãªããŸããåãã·ã¹ãã å ãªãåé¡ãªãåããŸãããæµ·å€ãŠãŒã¶ãŒå¯Ÿå¿ãDBä¿åãªã©ã§ã¯å¿ ãã¿ã€ã ãŸãŒã³ä»ãïŒawareïŒã§æ±ãã®ãå®å šã§ããð¡ïž
ãããŸããworkalendar ã holidays ãšãã£ãã©ã€ãã©ãªã¯ãæ¥æ¬ã ãã§ãªãäžçååœã®ç¥æ¥ã«å¯Ÿå¿ããŠããŸããã°ããŒãã«å¯Ÿå¿ãããªãæ€èšã®äŸ¡å€ããã§ããð
Pythonã® datetime ã¢ãžã¥ãŒã«ã¯ãæåããã€ã³ããŒãããããããæããŸãããdateã»timeã»datetimeã»timedeltaã»timezone ã®åœ¹å²ãæŽçããã°ãèŠããæ¯è²ãã¬ã©ããšå€ãããŸããããã« jpholiday ã®ãããªå€éšã©ã€ãã©ãªãçµã¿åãããã°ã忥ãç¥æ¥ãå«ãããå®çšçãªäŒæ¥å€å®ããäžè¡ã§æžããããã«ãªããŸããð
倧åãªã®ã¯ãäžžæèšã§ã¯ãªããããããããšãèšèã«ããŠããã察å¿ãã颿°ãæ¢ããç¿æ £ãæã€ããšãã仿¥ãã3ãæåŸããæ¥æ¬æéã§æ8æããç¥æ¥ãã©ãããââããªãã®é ã®äžã®èªç¶ãªåãã«ãPythonã¯å¿ ãçããŠãããŸããæ¬¡ã®ã¢ããªéçºã§ããã²ä»æ¥åŠãã åŒãåºããéããŠã¿ãŠãã ãããðª
ð AIãšãããæåŒ·ã®çããæ¥…
ð 人éã®ãç¥èœã®å£ãã厩å£ã…
ð¡ïž ããªãã®PCã¯ãéµããã…
ð€ AIãšãŒãžã§ã³ãæä»£ã«ã皌…
âš æ¥ã ã®æäœãå¿å°ãããªã
ð AIæä»£ã®èœãšã穎ïŒã䟿婅