给定年份和一年中的星期数,计算一周的第一天

时间:2018-07-20 04:02:55

标签: python datetime

在python中,当给定年份和一年中的特定星期数时,如何计算一周的第一天?

请注意,日期应为YYYY-MM-DD格式。年和周号以int格式给出。.

3 个答案:

答案 0 :(得分:0)

要获取一周的开始日期,请尝试

datetime.today() - timedelta(days=datetime.today().isoweekday() % 7)

答案 1 :(得分:0)

对于您的问题,我做出以下假设。如果关闭,则调整代码应该不难。 1)一周的第一天是星期日。 (所以答案始终是星期天) 2)1月1日是第1周(不是0)。 然后,工作分为两部分。 a)找出第一周的第一天。 b)在上面加上正确的天数。 在Python中,它如下所示:

import datetime
def firstDayOfWeek1(y):
    #takes a year and says the date of the first Sunday in the week in which January 1 falls
    janDay = datetime.date(y,1,1)
    while (janDay.weekday()!=6):#back up until Sunday, change if you hold Sunday is not the first day of the week
        janDay=janDay-datetime.timedelta(days=1)
    return janDay
def firstDayOfWeekN(y, n):#takes a year and a week number and gives the date of the first Sunday that week
    return firstDayOfWeek1(y)+datetime.timedelta(weeks=(n-1))
def formattedFirstDayOfWeekN(y, n):#takes a year and a week number and gives the date of the first Sunday that week
    return firstDayOfWeekN(y, n).isoformat()
#example
print formattedFirstDayOfWeekN(2018,2)#2018-01-07, first day of second week of January this year

答案 2 :(得分:0)

我正在使用一种算法,该算法从一个截止日期开始,然后简单地向下循环直到找到所需的结果。为了降低可读性,我牺牲了一些CPU周期,因为成本并不高。我已经做了一些有限的测试,但我希望总体思路清楚。让我知道你的想法。

#!/bin/bash
cat /home/mshafee/file | while read line

do
        mysql -u username -p****** -h 0.0.0.0 -e "drop database $line;"

done