Hướng dẫn python get first sunday of month - python có ngày chủ nhật đầu tiên của tháng

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

Làm thế nào để tôi có được ngày chủ nhật ở Python?

Sử dụng DateTime's WisoweekDay [] thay vì Ngày trong tuần [] để có được số ngày trong tuần [0 cho Chủ nhật, 1 cho Thứ Hai, v.v.] ....
@jderefinko isoweekday [] trở lại 7 cho Chủ nhật. ....
Hôm nay = DateTime.Date [2019, 6, 29] trở lại 2019-06-16 cho Chủ nhật tuần trước khi nó sẽ là 2019-06-23 ..

Làm thế nào để tôi có được số ngày chủ nhật trong một tháng ở Python?

y, m = 2013, 2;ngày = [ngày trong tuần [y, m, d+1] cho d trong phạm vi [*tháng [y, m]]];in [ngày.Count [Chủ nhật]];Cho 3 không phải 4.print [days. count[SUNDAY]]; gives 3 not 4.

Làm cách nào để có được lần đầu tiên trong tháng ở Python?

Sử dụng các bước dưới đây:..
Đầu tiên, nhập lớp DateTime và Timedelta từ mô -đun DateTime ..
Tiếp theo, lấy số ngày thực tế của một đối tượng DateTime đầu vào bằng phương thức strftime [].....
Tiếp theo, sử dụng lớp Timedelta để trừ ngày thực tế - 1 từ ngày đầu vào để có được ngày đầu tiên của tháng [ngày bắt đầu là một tháng].

Làm thế nào để bạn có được thứ sáu thứ ba của tháng ở Python?

Đây là một giải pháp trong đó ai đó đã tìm ra nó: Mô-đun tương đối là một phần mở rộng từ gói Python DateUtil [PIP Cài đặt Python-DateUtil].Phần quan trọng ở đây tất nhiên là ngày trong tuần = Relativingelta.fr [3] cho biết chính xác những gì cần thiết: Thứ Sáu thứ ba của tháng.weekday=relativedelta.FR[3] which says exactly what's needed: the third Friday of the month.

Bài Viết Liên Quan

Chủ Đề