0

我想设计一个算法,它会根据设置的开始周数计算周数。例如: - 如果我将开始日设置为WEDNESDAY当前第 40 周和第 40 周TUESDAY,它应该打印 40 作为周数。如果是星期三或星期四,我应该得到 41。

把它想象成一个循环。从周三到周二,应该分配一个星期没有+1,然后当下一个星期三到来时,应该再次增加一周。

我尝试使用calendar.setfirstweekday(calendar.WEDNESDAY)然后更改我的系统机器时间,每次我得到的都是 40 作为周数。

如何在python中设计诸如算法?

我有一个月的类似问题,但我已经为它设计了一个解决方案。就这个。

current_date = datetime.datetime.now()
if current_date.day < gv.month_start_date:
    month   = current_date.month -1
    if month == 0:
        month = 12
    else:
        month = current_date.month

如何设计一周?

4

2 回答 2

2

我终于为此设计了一个解决方案。

if current_day >= set_week_day:
    week = current_week
else:
    week = current_week - 1

适用于所有情况。

于 2013-09-30T10:00:14.060 回答
0

python中的datetime有一个叫做isocalender的函数来获取ISO周数(从星期一开始)

import datetime
datetime.date(2013, 9, 30).isocalendar()[1]

你可以用一点逻辑来使用它(这个脚本应该从星期三开始一周)

import datetime

day = 30
month = 9
year = 2013
weekcount = datetime.date(year, month, day).isocalendar()[1]
if datetime.date(year, month, day).isocalendar()[2] <= 3: # start on wednesday
    weekcount -= 1
print weekcount
于 2013-09-30T09:57:20.247 回答