我想设计一种算法,根据开始工作日设置来计算周数。例如: - 如果我将开始日设置为WEDNESDAY
并且当前为其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
我怎样才能设计一周?
答案 0 :(得分:1)
我终于为此设计了一个解决方案。
if current_day >= set_week_day:
week = current_week
else:
week = current_week - 1
适用于所有情况。
答案 1 :(得分:0)
datetime in python有一个名为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