2013-08-18 88 views
3

我試圖用python上的這個簡單腳本得到星期編號。Python上的美國格式的星期編號

import datetime 

t = datetime.date(2013,8,18) 
print t.isocalendar()[1] 

它返回33 ISO格式,但對於美國的日程表應該是34 我如何獲得美國格式本週多少?

+0

你有看到[如何獲得Python的星期數? ](http://stackoverflow.com/a/2608868)? –

+0

他想要的不僅僅是週數,他想要美國格式的週數。 –

回答

0

33的返回值是正確的,因爲您獲取星期編號的代碼是正確的。但如果你想使之成爲一條線你可以把它們串一起這樣的:

t = datetime.date(2013, 8, 18).isocalendar()[1]

下面介紹ISO日曆背後的數學http://www.staff.science.uu.nl/~gent0113/calendar/isocalendar.htm

此外,從有關isocalendar Python文檔:

ISO年由52或53個整週組成,每週在週一開始 ,週末結束。 ISO年的第一週是 包含星期四的第一個(格里高利)歷年。這個 被稱爲第1周,並且該星期四的ISO年與其公曆年 相同。

+0

我認爲問題是如何在星期天開始的時候這樣做。來自[維基百科](http://en.wikipedia.org/wiki/ISO_week_date#Disadvantages):「在美國,工作周通常定義爲星期一開始,儘管星期一通常被認爲是星期天開始。」 – Olathe

1

我遇到了同樣的問題。 ISO日曆是一個偉大的概念,可能有一些非常好的用途,但在美國的業務卻不太好。我無法撰寫一份可能在12月底將日期報告爲下一日曆年的申請。適用於我的解決方案是:

from datetime import * 
today = datetime.today() 
print today.strftime("%U") 

這將返回正確的美國週數。唯一需要注意的是,在第一個星期日之前的新年的所有日子都被認爲是在第0周。信用給Chaggster誰給了這裏similar answerHow to get week number in Python?

相關問題