繁体   English   中英

在python中更改星期几的开始日期后获取当前星期数的算法?

[英]Algorithm for getting current week number after changing the starting day of the week in python?

我想设计一种算法,该算法将根据开始的星期几设置来计算星期数。 例如:-如果我将开始日期设置为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

我该如何设计一周?

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

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

适用于所有情况。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM