import time
# 輸入指定計算時間
start_day =
input
("請輸入回溯的日期(格式為:年-月-日):"
)end_day =
input
("請輸入計算結束的日期(格式為:年-月-日):"
)# 將輸入的時間轉換為時間元組
start_tuple = time.strptime(start_day,
'%y-%m-%d'
)end_tuple = time.strptime(end_day,
"%y-%m-%d"
)# 將時間元組轉換成時間戳
start_stamp = time.mktime(start_tuple)
end_stamp = time.mktime(end_tuple)
# 新建乙個列表
workday =
while start_stamp < end_stamp:
# 將時間戳轉換為時間元組
start_timetuple = time.localtime(start_stamp)
# 判讀非工作日
ifnot start_timetuple[6]
==5andnot start_timetuple[6]
==6:# 將元組形式的時間日期轉換成字串形式
x = time.strftime(
"%y-%m-%d"
, start_timetuple)
# 將時間戳+86400相當於日期加一天
start_stamp +=
86400
print
("從{}到{}共有{}工作日"
.format
(start_day, end_day,
len(workday)
))
執行結果
請輸入回溯的日期(格式為:年-月-日):2019-01
-01請輸入計算結束的日期(格式為:年-月-日):2019-01
-31從2019-01
-01到2019-01
-31共有22工作日
import datetime
# 獲取當前時間
day_naw_time = datetime.datetime.now(
)# 將當前時間轉換成字串
day_naw = day_naw_time.strftime(
"%y-%m-%d"
)# 輸入指定時間
day_test =
input
("請輸入你想查詢的時間(2019-01-01):"
)# 將字串轉換成時間
day_test_time = datetime.datetime.strptime(day_test,
"%y-%m-%d"
)count =
0while day_test_time < day_naw_time:
if day_test_time.weekday()!=
5and day_test_time.weekday()!=
6:count +=
1 day_test_time += datetime.timedelta(days=1)
print
("從{}到今天{}的工作日一共有{}天"
.format
(day_test, day_naw, count)
)
執行結果
請輸入你想查詢的時間(2019-01
-01):2019-10
-20從2019-10
-20到今天2019-12
-26的工作日一共有49天
轉貼 工作日的計算
using system using system.data using system.configuration using system.collections using system.web using system.web.security using system.web.ui usin...
oracle獲取當前時間順延指定工作日的日期
1 建立節假日表,包含週六日 2 利用迭代,寫oracle function create or replace function func getbusideferdate startdate date,deferday number return date 返回推遲number個工作日的日期,不...
(Oracle)取當前日期的最近工作日
描述 現有一需求,日期表中存放了日期和是否節假日 0 工作日,1 節假日 現在需要取日期表中的最近的工作日。如2017 07 23 週日 最近的工作日應該是2017 07 21 周五 date d is holiday 1 2017 7 17 0 2 2017 7 18 0 3 2017 7 19 ...