import datetime
class workdays:
def __init__(self, start_date, end_start, days_off=none):
"""weekday()方法將乙個日期轉換對應成星期,以星期一(0)到星期天(6)結束
:param start_date: 開始時間,必須是datetime格式
:param end_start: 結束時間,必須是datetime格式
:param days_off: 休息日,預設為週六週日
"""self.start_date = start_date
self.end_date = end_start
self.days_off = days_off
if self.start_date > self.end_date: # 防止開始日期和結束日期傳入反了
self.start_date, self.end_date = self.end_date, self.start_date
if self.days_off is none: # 休息日為周
六、週日
self.days_off = 5, 6
# 每週工作日列表
self.days_work = [i for i in range(7) if i not in self.days_off]
def workdays(self): # 計算出自定義範圍內有多少個工作日,包含節假日
tag_date = self.start_date
while true:
if tag_date > self.end_date:
break
if tag_date.weekday() in self.days_work: # 判斷日期為非週末
yield tag_date
tag_date += datetime.timedelta(days=1)
def holiday(self): # 計算自定義範圍內節假日佔多少
# a股休市日期
holiday = "20210101,20210211,20210212,20210215,20210216,20210217,20210405,20210503,20210504,20210505,20210614,20210920,20210921,20211001,20211004,20211005,20211006,20211007"
holidaylist = holiday.split(",")
for i in holidaylist:
date = datetime.datetime(int(i[0:4]), int(i[4:6]), int(i[6:8]))
if self.start_date <= date <= self.end_date: # 判斷節假日在自定義的範圍內
if date.weekday() in self.days_work: # 判斷為非週末
yield date
def dayscount(self): # 計算工作日,不包含節假日
return len(list(self.workdays()))-len(list(self.holiday()))
求 0 N 內有多少個素數
問題 求 0 n 內素數的個數。預備知識 什麼是素數 素數 又叫質數 與之相反的是合數。素數的因數只有 1和他本身,例如 7 1 7。而 6 1 6 2 3,因此6不是素數。規定 0 和 1 既不是 素數 也不是 合數。判斷素數 如果乙個數 x 是素數,那麼在整數範圍 2,x 之間,找不到任何能整除...
合理計算建立多少個執行緒
為什麼 實際執行緒數量 理論執行緒數量 1?計算 cpu 密集型的執行緒恰好在某時因為發生乙個頁錯誤或者因其他原因而暫停,剛好有乙個 額外 的執行緒,可以確保在這種情況下cpu週期不會中斷工作。問題1 假設要求乙個系統的 tps transaction per second 或者 task per ...
在O n 時間內找出最小的k個元素
思想 1.用大頭堆實現 2.類似快速排序實現 1.用大頭堆實現 程式設計師面試一百題 解法 2.類似快速排序實現 程式猴 include stdafx.h include include include include include using namespace std 每次將陣列劃分為兩部分,...