Как рассчитать номер недели в улье или python? Неделя должна проходить с субботы по пятницу - PullRequest
1 голос
/ 30 марта 2020

Я пробовал следующее: Выберите weekofyear (current_timestamp), но это вычисляет неделю с понедельника по воскресенье. Я хочу неделю с субботы по пятницу, исходя из того, что она должна заполнять номер недели. В улье, если мы не можем сделать, как насчет python.?

В python Я пытался:

A = datetime.date(2020, 3, 29).isocalendar()[1]

Но опять же это вычисляет неделю с понедельника по субботу

Ответы [ 2 ]

1 голос
/ 30 марта 2020

Еще одна попытка с предположением, что январь 1 всегда на неделе 1.

from datetime import date
from calendar


def week_number(ndate, week_start=calendar.MONDAY):
    new_years_day = ndate.replace(month=1, day=1)
    offset = (new_years_day.weekday() - week_start) % 7  # Count back to start of week. Modulo for positive value.
    all_days = (ndate - new_years_day).days + offset  # Days ago week 1 started.

    return (all_days // 7) + 1  # Integer division means we don't have to floor() it. Add 1 for human readable numbers.


print(week_number(date(2020, 1, 1)))  # 1, always
print(week_number(date(2020, 3, 29)))  # 13
print(week_number(date(2020, 3, 29), calendar.SATURDAY))  # 14
print(week_number(date(2020, 3, 27), calendar.SATURDAY))  # 13
1 голос
/ 30 марта 2020
import datetime

def week_number(ndate):
    odate = datetime.datetime(ndate.year, 1, 1) 
    spec = odate.weekday()
    alldays =    (ndate - odate).days + spec - 4

    mod = alldays % 7
    days = (alldays - mod) / 7

    if (mod > 0):
        days = days + 1

    return (int)days

print(week_number(datetime.datetime.today()))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...