Tôi cần chạy một báo cáo hàng tháng vào thứ Hai đầu tiên của tháng và tính toán ngày hôm nay với Python. Mã mà tôi có cho đến nay sẽ đi vào một mô -đun trong chương trình ETL của chúng tôi và sẽ xác định xem ngày thực sự là ngày đầu tiên của tháng. Lý tưởng nhất, những gì tôi cần là nếu thứ Hai là thứ Hai đầu tiên của tháng, hãy chạy báo cáo [thực thi = 1] vào ngày này. Nếu không, không chạy bất cứ điều gì [thực thi = 0]. Tôi có gì:
# 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]
Nó hoạt động giả định ngày trong "hôm nay" không phải sau ngày thứ Hai đầu tiên của tháng. Khi "hôm nay" là sau ngày thứ Hai đầu tiên của tháng, nó sẽ in vào thứ Hai tới.
Lập lịch ETL của chúng tôi cho phép chúng tôi chạy hàng ngày, hàng tuần hoặc hàng tháng. Tôi nghĩ rằng tôi sẽ phải chạy điều này hàng ngày, mặc dù đây là một báo cáo hàng tháng và mô -đun với mã này sẽ xác định xem "hôm nay" có phải là thứ Hai đầu tiên của tháng hay không. Nếu đó không phải là thứ hai đầu tiên, nó sẽ không thực hiện các mô -đun mã tiếp theo [Execute = 0]. Tôi không tin rằng điều này thực sự sẽ chạy nếu "hôm nay" là ngày thứ Hai đầu tiên của tháng kể từ khi nó in vào thứ Hai tới cho bất kỳ ngày nào được thông qua trong "Hôm nay".
Tôi dường như không thể tìm thấy câu trả lời tôi cần để đảm bảo rằng nó chỉ tính toán vào thứ Hai đầu tiên của tháng và chỉ chạy báo cáo vào ngày đó. Cảm ơn trước.
Trong hướng dẫn này, chúng tôi sẽ nói về cách tìm Chủ nhật đầu tiên của tháng ở Python. Vì vậy, để hiểu cách thức hoạt động của chương trình này. Chúng ta cần những gì & nbsp; chức năng lịch.How to find the first Sunday of the month in Python. So in order to understand how this program works. We need to what Calendar function.
Lịch trong Python là gì?
Mô -đun lịch được sử dụng để cung cấp các chức năng bổ sung liên quan đến lịch. Mặc định, Thứ Hai đã coi là ngày đầu tiên trong tuần ở Integer It [0] và Chủ nhật là ngày cuối cùng của tuần [6].
Lịch hiển thị của tháng đã cho
Trong chương trình dưới đây. Chúng tôi nhập mô -đun lịch. Tháng chức năng tích hợp được sử dụng để hiển thị tháng.month is used to display month.
import calendar yy=2017 mm=4 print[calendar.month[yy,mm]]
Output: August 2019 Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Một số chức năng đã biết trên lịch
- isLeap [] & nbsp; - & nbsp; kiểm tra xem đó có phải là năm nhảy hay khôngchecks if it is leap year or not
- Tuần []- Trả về số ngày trong tuần của ngày đã cho Returns the weekday number of the given date
- tháng [] - & nbsp; sử dụng để in tháng của một năm cụ thểUse to print the month of a specific year
- Lịch [] - & nbsp; Hiển thị năm, số dòng mỗi tuần. Displays year, number of lines per week.
- preyear []-& nbsp; sử dụng để in lịch trong cả nămUse for printing the calendar for an entire year
Tìm Chủ nhật đầu tiên [bất kỳ ngày nào] của tháng ở Python
import calendar cal= calendar.TextCalendar[calendar.SUNDAY] print[cal.prmonth[2019,1] print[calendar.SUNDAY]
Output: January 2019 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 6
Như được viết trên mã trên lịch văn bản được sử dụng. Lịch văn bản được sử dụng để hiển thị lịch văn bản đơn giản & nbsp; như tên đã nói nhưng lịch văn bản cũng cho phép bạn chỉnh sửa lịch theo yêu cầu của bạn. Thay vì [lịch.sunday], bạn có thể tìm kiếm bất kỳ ngày nào một cách dễ dàng. Và & nbsp; prmonth [] & nbsp; được sử dụng để in lịch tháng theo năm đầu vào của người dùng không cần thiết để sử dụng in để thực hiện.Text calendar is used. Text calendar is used to display plain Text Calendar as the name already tells but Text calendar also allow you to edit the calendar as per your requirement. Instead of [Calendar.SUNDAY] you can search for any days as well with ease. And prmonth[] is used to print month’s calendar according to user input not necessary to use print for execution.
Cũng đọc:
- Tìm ngày trong tuần với một ngày nhất định ở Python