# -*- coding: utf-8 -*-
created on fri aug 16 2019
@author: yangyang
import easygui as g
import datetime
# 獲取今天的日期
today = datetime.date.today()
# 判斷日期是否合法
def is_date(date):
try:
datetime.datetime.strptime(date,"%y-%m-%d")
return true
except:
return false
#計算兩個日期相差天數
def caltime():
msg = "請輸入需要計算的日期"
title = "計算兩個日期的差"
fieldnames = ["日期1", "日期2"]
fieldvalues = [today,today]
fieldvalues = g.multenterbox(msg,title, fieldnames,values = fieldvalues)
while true:
date1 = fieldvalues[0]
date2 = fieldvalues[1]
if is_date(date1) and is_date(date2):
# 將字串轉為日期
date1 = datetime.datetime.strptime(date1,"%y-%m-%d")
date2 = datetime.datetime.strptime(date2,"%y-%m-%d")
date_difference = date2-date1
msg = "計算結果"
g.multenterbox(msg,title, fieldnames,values = fieldvalues)
break
else:
g.msgbox("日期格式輸入錯誤,請重新輸入")
fieldvalues = g.multenterbox(msg,title, fieldnames,values = fieldvalues)
# 判斷日期屬於第幾周星期幾
def calcalendar():
msg = "請輸入需要計算的日期"
title = "判斷日期屬於第幾周星期幾"
fieldnames = ["日期"]
fieldvalues = [today]
fieldvalues = g.multenterbox(msg,title, fieldnames,values = fieldvalues)
while true:
date = fieldvalues[0]
if is_date(date):
date = datetime.datetime.strptime(date,"%y-%m-%d")
calendar = datetime.date.isocalendar(date)
msg = "計算結果"
g.multenterbox(msg,title, fieldnames,values = fieldvalues)
break
else:
g.msgbox("日期格式輸入錯誤,請重新輸入")
fieldvalues = g.multenterbox(msg,title, fieldnames,values = fieldvalues)
# 判斷日期是該年的第幾天
def caldays():
msg = "請輸入需要計算的日期"
title = "判斷日期是該年的第幾天"
fieldnames = ["日期"]
fieldvalues = [today]
fieldvalues = g.multenterbox(msg,title, fieldnames,values = fieldvalues)
while true:
date = fieldvalues[0]
if is_date(date):
y,m,d=map(int,date.split("-"))
d=0days=[31,0,31,30,31,30,31,31,30,31,30,31]
if ((y%400==0)|((y%4==0)&(y%100!=0))):
days[1]=29
else:
days[1]=28
for i in range(m-1):
d=d+days[i]
msg = "計算結果"
g.multenterbox(msg, title, fieldnames, values = fieldvalues)
break
else:
g.msgbox("日期格式輸入錯誤,請重新輸入")
fieldvalues = g.multenterbox(msg,title, fieldnames,values = fieldvalues)
# 判斷是否要繼續計算
def calreply():
msg = "是否繼續計算"
choices = ["是","否"]
reply = g.buttonbox(msg, choices=choices)
if reply == "是":
return true
else:
return false
# 選擇需要計算的功能
def caldate(choice):
if choice == "計算兩個日期的差":
caltime()
if choice == "判斷日期屬於第幾周星期幾":
calcalendar()
if choice == "判斷日期是該年的第幾天":
caldays()
reply = calreply()
if reply==true:
choice = g.choicebox(msg, title, choices)
caldate(choice)
else:
return false
return true
msg ="選擇你需要的功能"
title = "日期計算"
choices = ["計算兩個日期的差", "判斷日期屬於第幾周星期幾", "判斷日期是該年的第幾天"]
choice = g.choicebox(msg, title, choices)
caldate(choice)
python 日期運算 python的日期運算
獲取當前日期 datetime.date.today import datetime today datetime.date.today today out 1 datetime.date 2020,11,2 在當前日期上加一天 tom today datetime.timedelta days 1...
Python日期加減運算
python中的time與datetime基本是你中有我,我中有你的關係,有時只想操作一部分反而不那麼方便。在碼 的過程中,需要從某個日期往前或者往後推移,手動計算又要考慮跨月份的問題。經過閱讀python官方文件,找到了日期加減推移運算的方法。乙個日期可以和乙個日期增量相加減。那麼,推算日期 時間...
Python日期時間的運算
一 日期時間計算 1 timedelta 兩個datetime之差 次類中包含如下屬性 1 days 天數 2 microseconds 微秒 0並且 1秒 3 seconds 秒數 0並且 1天 演示 fromdatetimeimportdatetime dt01 datetime 2012 12...