9計算當前回退N年的工作日數

2021-10-01 17:48:02 字數 1912 閱讀 9537

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 ...