python提供了一个很方便的函数isocalendar.使用该函数可以很方便地查询到当前日期是第多少周。本文举例说明如何获取某个日期是第多少周,以及每周的开始日期获取当前日期是第多少周import datetime
timenow = datetime.datetime.now()
weekmsg = timenow.isocalendar()
#当前日期执行的结果为(2014, 35, 4) 分别代表2014年第35周星期4
##以下查询某个日期是第多少周##
def getweekmsg('strdate'):
datetime = datetime.datetime.strptime(strdate,'%Y%m%d')
weekmsg = datetime.isocalendar()
print weekmsg
####strdate为字符串格式,如20140828 输出为(2014, 35, 4)
2.获取第多少周的开始日期#weekflag格式为201435(即2014年第35周)
def getfirstday(weekflag):
yearnum = weekflag[0:4] #取到年份
weeknum = weekflag[4:6] #取到周
stryearstart = yearnum +'0101' #当年第一天
yearstart = datetime.datetime.strptime(stryearstart,'%Y%m%d') #格式化为日期格式
yearstartcalendarmsg = yearstart.isocalendar() #当年第一天的周信息
yearstartweek = yearstartcalendarmsg[1]
yearstartweekday = yearstartcalendarmsg[2]
yearstartyear = yearstartcalendarmsg[0]
if yearstartyear < int (yearnum):
daydelat = (8-int(yearstartweekday))+(int(weeknum)-1)*7
else :
daydelat = (8-int(yearstartweekday))+(int(weeknum)-2)*7
a = (yearstart+datetime.timedelta(days=daydelat)).date()
return a
#输出2014年第35周的开始时间