Как рассчитать первый понедельник месяца; Python 3.3+Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как рассчитать первый понедельник месяца; Python 3.3+

Сообщение Anonymous »

мне нужно запустить ежемесячный отчет в первый понедельник месяца и рассчитать этот день с Python. Код, который у меня есть до сих пор, перейдет в модуль в нашей программе ETL и определит, является ли дата на самом деле первым днем ​​месяца. В идеале, что мне нужно, это если понедельник - первый понедельник месяца, запустите отчет (Exepute = 1) только в этот день. В противном случае, ничего не запускайте (Exepute = 0). Что у меня есть: < /p>
# Calculate first Monday of the month

# import module(s)

from datetime import datetime, date, timedelta

today = date.today() # - timedelta(days = 1)
datee = datetime.strptime(str(today), "%Y-%m-%d")

print(f'Today: {today}')

# function finds first Monday of the month given the date passed in "today"

def find_first_monday(year, month, day):
d = datetime(year, int(month), int(day))
offset = 0-d.weekday() #weekday = 0 means monday
if offset < 0:
offset+=7
return d+timedelta(offset)

# converts datetime object to date
first_monday_of_month = find_first_monday(datee.year, datee.month, datee.day).date()

# prints the next Monday given the date that is passed as "today"

print(f'Today\'s date: {today}')
print(f'First Monday of the month date: {first_monday_of_month}')

# if first Monday is true, execute = 1, else execute = 0; 1 will execute the next module of code

if today == first_monday_of_month:
execute = 1
print(execute)
else:
execute = 0
print(execute)

< /code>
Он работает, если дата «сегодня» не после первого понедельника месяца. Когда «сегодня» будет после первого понедельника месяца, он печатает следующий в понедельник. Я думаю, что мне придется запускать это ежедневно, хотя это ежемесячный отчет, и модуль с этим кодом определит, является ли «сегодня» первый понедельник месяца или нет. Если это не первый понедельник, он не выполнит следующие кодовые модули (execute = 0). Я не уверен, что это действительно будет работать, если «сегодня» - первый понедельник месяца, так как он печатает следующий в понедельник для любой даты, пройденной в «Сегодня». < /P>
Я могу ' Похоже, что мне нужен ответ, чтобы убедиться, что он вычисляет только первый понедельник месяца и запускает отчет только в тот день. Заранее спасибо.

Подробнее здесь: https://stackoverflow.com/questions/673 ... python-3-3
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»