作為周日歷,在生活中不常用到,它一般用于政府,以及相關(guān)會(huì)計(jì)之間的計(jì)劃或者年度相關(guān)的日歷之中。那么,具體之間的操作方法,下文就給大家詳細(xì)的解答。
基本介紹:
在開發(fā)過程中,有些像以單位為一個(gè)小的計(jì)量單位,下面給大家詳細(xì)解答。
使用datetime類格式化進(jìn)行轉(zhuǎn)換
strftime方法可以將時(shí)間轉(zhuǎn)換為字符串
strptime方法可以將字符串轉(zhuǎn)為時(shí)間
"%Y,%W,%w"中,"%Y"代表年份,"%W"代表周,"%w"代表一周內(nèi)的第幾天
from datetime import datetime #時(shí)間轉(zhuǎn)周日歷 a=datetime.now().strftime("%Y,%W,%w") print(a)#2022,28,3 #周日歷轉(zhuǎn)時(shí)間 a=datetime.strptime("2022,12,3","%Y,%W,%w") print(a)#2022-03-23 00:00:00
問題
以上貌似問題解決了,但是問題出在年初和年尾
以2021年12月,2022年1月舉例
2021年12月
2022年1月
from datetime import datetime a=datetime.strptime("2021-12-31","%Y-%m-%d") print(a.strftime("%Y,%W,%w"))#2021,52,5 a=datetime.strptime("2022-01-01","%Y-%m-%d") print(a.strftime("%Y,%W,%w"))#2022,00,6
正確方法
使用isocalendar將日期轉(zhuǎn)換為周日歷
datetime類型的時(shí)間直接調(diào)用isocalendar方法 from datetime import datetime def str_to_time(time_str:str)->datetime: return datetime.strptime(time_str,"%Y-%m-%d") time_list=[ "2021-12-30", "2021-12-31", "2022-01-01", "2022-01-02", "2022-01-03", ] for i in time_list: t=str_to_time(i) iso=t.isocalendar() print(i,">",f"{iso.year},{iso.week},{iso.weekday}") #2021-12-30>2021,52,4 #2021-12-31>2021,52,5 #2022-01-01>2021,52,6 #2022-01-02>2021,52,7 #2022-01-03>2022,1,1
使用fromisocalendar將周日歷轉(zhuǎn)換為日期
from datetime import datetime time_list=( (2021,52,4), (2021,52,5), (2021,52,6), (2021,52,7), (2022,1,1), ) for year,week,weekday in time_list: t=datetime.fromisocalendar(year,week,weekday) print(f"{year},{week},{weekday}",">",t) #2021,52,4>2021-12-30 00:00:00 #2021,52,5>2021-12-31 00:00:00 #2021,52,6>2022-01-01 00:00:00 #2021,52,7>2022-01-02 00:00:00 #2022,1,1>2022-01-03 00:00:00
python代碼
from datetime import datetime def datetime_to_isoweek(datetime_:datetime)->tuple[int,int,int]: """時(shí)間轉(zhuǎn)換為iso周日歷 Args: datetime_(datetime):時(shí)間 Returns: tuple[int,int,int]:year,week,weekday """ iso=datetime_.isocalendar() return iso.year,iso.week,iso.weekday def isoweek_to_datetime(isoweek:tuple[int,int,int])->datetime: """iso周日歷轉(zhuǎn)換為時(shí)間 Args: isoweek(tuple[int,int,int]):year,week,weekday Returns: datetime:時(shí)間 """ year,week,weekday=isoweek return datetime.fromisocalendar(year,week,weekday)
以上就是Pythom實(shí)現(xiàn)周日歷的具體代碼實(shí)例,希望可以給大家?guī)韼椭?/p>
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/127692.html
摘要:類是一個(gè)抽象類,它為特定瞬間與一組諸如等日歷字段之間的轉(zhuǎn)換提供了一些方法,并為操作日歷字段例如獲得下星期的日期提供了一些方法。是不變的日期時(shí)間對(duì)象代表一個(gè)日期時(shí)間,往往被視為年月日時(shí)分秒。獲得實(shí)例的日期和時(shí)間。 時(shí)區(qū) GMT(Greenwich Mean Time):格林尼治時(shí)間,格林尼治標(biāo)準(zhǔn)時(shí)間的正午是指當(dāng)太陽橫穿格林尼治子午線時(shí)(也就是在格林尼治上空最高點(diǎn)時(shí))的時(shí)間。 UTC(U...
摘要:在設(shè)置或獲得或字段時(shí),必須確定一個(gè)月或一年的第一個(gè)星期,以此作為參考點(diǎn)。一個(gè)月或一年的第一個(gè)星期被確定為開始于的最早七天,它最少包含那一個(gè)月或一年的天數(shù)。例如,特定子類可能將某一年第個(gè)星期之前的那個(gè)星期指定為前一年的第個(gè)星期。 Calendar工具類解釋 首先解釋下Calendar工具類的作用。根據(jù)API的解釋,Calendar 類是一個(gè)抽象類,它為特定瞬間與一組諸如 YEAR、MON...
摘要:即之前實(shí)現(xiàn)了一個(gè)月視圖日歷,我們今天來實(shí)現(xiàn)一個(gè)二維周視圖的日歷。難點(diǎn)實(shí)現(xiàn)內(nèi)容部件插入我們實(shí)現(xiàn)這個(gè)二維周視圖日歷的主要目的就是要支持插入任意的內(nèi)容,上面已經(jīng)準(zhǔn)備好了插入內(nèi)容的元素,這里要做的就是將數(shù)據(jù)繪制成放置在合適的位置。 即之前實(shí)現(xiàn)了一個(gè)月視圖日歷,我們今天來實(shí)現(xiàn)一個(gè)二維周視圖的日歷。 以下進(jìn)行分析其中的關(guān)鍵部分。 結(jié)構(gòu)準(zhǔn)備 不同之處在于其在日歷的基礎(chǔ)上還有一個(gè)分類軸,用于展示不同的...
知識(shí)普及 陽歷:就是以太陽來計(jì)算日期的一類歷法; 陰歷:根據(jù)月亮周期制定出的歷法,由陰轉(zhuǎn)晴,再由晴轉(zhuǎn)陰為一個(gè)月,換算下來合29天12個(gè)小時(shí)44分零二秒八,接近30天?! 」珰v:屬陽歷的一種,我國現(xiàn)在使用的就是公歷; 農(nóng)歷:我國的農(nóng)歷是一種陰陽合歷,用來指導(dǎo)農(nóng)業(yè)十分方便?! 】偨Y(jié)來說公歷屬于陽歷,但是陽歷并不一定是公歷。農(nóng)歷不是陰歷,而是陰陽歷,是以陰歷為主,陽歷為輔。 公歷:用阿拉伯?dāng)?shù)...
摘要:中提供了一個(gè)和的模塊可以用來做格式化日期和時(shí)間的。格式化日期通過模塊中方法來格式化日期函數(shù)接收時(shí)間元組并返回以可讀字符串表示薪資的時(shí)間格式的話由參數(shù)決定。每日寬度間隔為字符每行的長度為是每星期的行數(shù)。 我們可以通過學(xué)習(xí)在Python中對(duì)日期時(shí)間的處理,可以在快速的完成工作,比如: 將日期時(shí)間作為日志信息的內(nèi)容輸入 計(jì)算某一個(gè)功能的執(zhí)行時(shí)間 用日期命名一個(gè)文件的名稱 記錄或者展示文件的...
閱讀 1068·2023-01-14 11:38
閱讀 1064·2023-01-14 11:04
閱讀 905·2023-01-14 10:48
閱讀 2382·2023-01-14 10:34
閱讀 1150·2023-01-14 10:24
閱讀 1028·2023-01-14 10:18
閱讀 657·2023-01-14 10:09
閱讀 735·2023-01-14 10:02