Python บทช่วยสอนปฏิทินพร้อมตัวอย่าง

โมดูลปฏิทินใน Python มีคลาสปฏิทินที่สามารถคำนวณงานต่างๆ ตามวัน เดือน ปีได้ ยิ่งไปกว่านั้น ยังมีคลาส TextCalendar และ HTMLCalendar อีกด้วย Python ช่วยให้คุณสามารถแก้ไขปฏิทินและใช้งานได้ตามความต้องการของคุณ

มาดูกันว่าเราสามารถทำอะไรได้บ้าง Python ปฏิทิน.

ขั้นตอนที่ 1) เรียกใช้รหัส

ปฏิทินใน Python

  • รหัสบรรทัด # 1: เราเริ่มต้นด้วย "นำเข้าปฏิทิน" ซึ่งจะนำเข้าคลาสทั้งหมดของโมดูลนี้
  • รหัสบรรทัด # 3: c= ปฏิทิน TextCalendar(calendar.SUNDAY) บอกให้ล่ามสร้างปฏิทินข้อความ ต้นเดือนจะเป็นวันอาทิตย์ ใน Pythonคุณสามารถจัดรูปแบบปฏิทินตามที่คุณสามารถเปลี่ยนวันของเดือนที่จะเริ่มต้นได้
  • Code Line # 4: str= c.formatmonth(2025,1) เรากำลังสร้างปฏิทินสำหรับปี 2025 เดือนที่ 1 – มกราคม
  • รหัสบรรทัด # 5: print str จะพิมพ์ผลลัพธ์

มาเปลี่ยนค่าจากวันอาทิตย์เป็นวันพฤหัสบดีอย่างรวดเร็วแล้วตรวจสอบผลลัพธ์

ปฏิทินใน Python

ขั้นตอน 2) คุณยังสามารถพิมพ์ปฏิทินในรูปแบบ HTML ได้ คุณสมบัตินี้มีประโยชน์สำหรับนักพัฒนาซอฟต์แวร์ หากต้องการเปลี่ยนแปลงรูปลักษณ์ของปฏิทิน

ปฏิทินใน Python

ขั้นตอน 3) ลูป ตลอดวันของเดือนโดยใช้ c.itermonthday (2025,4) มันจะดึงข้อมูลจำนวนวันทั้งหมดสำหรับเดือนนั้น

ปฏิทินใน Python

  • เมื่อคุณรันโค้ดเพื่อให้ได้จำนวนวันทั้งหมดในเดือนใดเดือนหนึ่งโดยพูดว่า "เมษายน" คุณจะได้รับผลลัพธ์ 30 วัน แต่คุณจะเห็นเลขศูนย์บางตัวพร้อมกับวันเหล่านี้ที่จุดเริ่มต้นและบางครั้งที่จุดสิ้นสุดของมัน .
  • ค่าศูนย์ในเอาต์พุตหมายความว่าวันในสัปดาห์อยู่ในเดือนที่ทับซ้อนกัน ซึ่งหมายความว่าวันดังกล่าวไม่ได้อยู่ในเดือนนั้น
  • ศูนย์เหล่านี้ปรากฏในเอาต์พุตเนื่องจากในโค้ดของคุณคุณได้กล่าวถึงวัน (วันพฤหัสบดี) ดังนั้นเมื่อคุณเรียกใช้ฟังก์ชัน "c.itermonthdays" ฟังก์ชันจะเริ่มนับวันตั้งแต่วันพฤหัสบดี และวันพฤหัสบดีของคุณอาจไม่เริ่มต้นด้วยวันที่ 1st ของเดือนเมษายนอาจเป็นวันที่ 28th หรือ 29th ของเดือนมีนาคม ดังนั้นเมื่อคุณรันโค้ด มันจะเริ่มนับวันจาก 28 วันth ของเดือนมีนาคมและวันอื่นๆ ถัดมาจนถึงวันที่ 1st ของเดือนเมษายน วันเหล่านี้จะถูกนับเป็นศูนย์และในผลลัพธ์คุณจะเห็นศูนย์เหล่านี้ และจะมีผลเช่นเดียวกันนี้จนถึงสิ้นเดือน
  • ดังนั้นยกเว้นวันที่ 1-30 วันที่ทั้งหมดจากเดือนก่อนหน้าและเดือนที่โพสต์จะปรากฏในเอาต์พุตเป็นศูนย์

ขั้นตอน 4) คุณสามารถดึงข้อมูลจากระบบภายในเครื่องได้ เช่น เดือนหรือวันธรรมดา เป็นต้น

ปฏิทินใน Python

  • ผลลัพธ์ที่แสดงที่นี่แสดงให้เห็นว่าเราได้พิมพ์ชื่อเดือนจากระบบภายในเครื่องแล้ว นอกจากนี้ คุณยังสามารถดึงชื่อวันธรรมดาออกมาได้ดังที่แสดงด้านล่าง
  • ผลลัพธ์จะขึ้นอยู่กับระบบท้องถิ่น สมมติว่าระบบท้องถิ่นของคุณคือประเทศอื่น ระบบจะให้เอาต์พุตตามการตั้งค่าท้องถิ่นของประเทศนั้น เรามีเวลาเป็นเดือนๆ จึงไม่ต่างกัน แต่ถ้าเป็นสัปดาห์หรือวัน ก็จะแตกต่างอย่างแน่นอน

ปฏิทินใน Python

ขั้นตอน 5) คุณสามารถดึงรายการวันที่ระบุตลอดทั้งปีได้ ตัวอย่างเช่น มีวันตรวจสอบทุกวันแรก Monday ของสัปดาห์ คุณต้องการทราบวันที่แรก Monday สำหรับแต่ละเดือน คุณสามารถใช้รหัสนี้

ปฏิทินใน Python

  • mycal = Calendar.monthcalendar(2025, month) จะสร้างปฏิทินสำหรับเดือนนั้นๆ
  • ตั้งค่าตัวแปร week1 และ week2 เป็นสัปดาห์แรกและสัปดาห์ที่สองของปฏิทิน
  • ตรวจสอบว่าสัปดาห์ที่ 1 มีหรือไม่ Monday, กำหนดวันตรวจสอบ
  • มิฉะนั้นให้กำหนดให้วันตรวจสอบเป็นวันแรก Monday ในสัปดาห์ที่ 2
  • ผลลัพธ์จะแสดงวันที่เป็นวันแรก Monday ซึ่งตรงกับเดือนนั้น
  • ความยาวของวัตถุ Cal นี้จะมีความยาวตามจำนวนสัปดาห์ในหนึ่งเดือน ในกรณีของเรา มันจะเป็นหนึ่งหรือสองอย่างแรก Monday ของสัปดาห์จะอยู่ในสัปดาห์แรกบ่อยที่สุด แต่ถ้าไม่ก็ให้พิจารณาสัปดาห์ที่สอง ให้ดูรายละเอียดว่าทำไมเราจึงพิจารณาสัปดาห์ที่สองด้วย
  • ที่นี่เราใช้ค่าคงที่ของปฏิทิน Mondayวัตถุปฏิทินจะให้ค่าคงที่ที่แสดงถึงวันอาทิตย์ Monday, วันอังคาร เป็นต้น เราเคยเห็นสิ่งเหล่านี้มาก่อน ดังนั้น หากในสัปดาห์ที่หนึ่ง วันที่แสดงด้วย Monday ค่าคงที่ไม่เท่ากับ 0 จำไว้ว่าศูนย์หมายถึงวันที่เป็นของเดือนอื่น ในกรณีนี้ ถ้ามันเป็นศูนย์ มันจะเป็น a Monday ที่เป็นของเดือนที่แล้ว แต่หากเป็นอย่างแรก Monday ไม่เท่ากับ 0 นั่นหมายความว่าวันตรวจสอบของฉันจะอยู่ภายในสัปดาห์ที่หนึ่ง มิฉะนั้น หากเป็น 0 ก็แสดงว่าวันตรวจสอบครั้งแรก Monday ไม่ได้อยู่ในสัปดาห์แรกของเดือน แต่ต้องเป็นสัปดาห์ที่สอง
  • ดังนั้น ฉันก็เลยบอกว่า โอเค ตั้งค่าตัวแปรวันตรวจสอบของฉันให้เป็น Monday แสดงโดยสัปดาห์ที่สอง ดังนั้นวันตรวจสอบจะกลับมาโดยจะเป็นวันใดก็ตามสำหรับสัปดาห์แรกหรือสัปดาห์ที่สอง

นี่คือรหัสที่สมบูรณ์

Python 2 ตัวอย่าง

import calendar
# Create a plain text calendar
c = calendar.TextCalendar(calendar.THURSDAY)
str = c.formatmonth(2025, 1, 0, 0)
print str

# Create an HTML formatted calendar
hc = calendar.HTMLCalendar(calendar.THURSDAY)
str = hc.formatmonth(2025, 1)
print str
# loop over the days of a month
# zeroes indicate that the day of the week is in a next month or overlapping month
for i in c.itermonthdays(2025, 4):
    print i

    # The calendar can give info based on local such a names of days and months (full and abbreviated forms)
    for name in calendar.month_name:
        print name
    for day in calendar.day_name:
        print day
    # calculate days based on a rule: For instance an audit day on the second Monday of every month
    # Figure out what days that would be for each month, we can use the script as shown here
    for month in range(1, 13):
		# It retrieves a list of weeks that represent the month
        mycal = calendar.monthcalendar(2025, month)
		# The first MONDAY has to be within the first two weeks
        week1 = mycal[0]
        week2 = mycal[1]
        if week1[calendar.MONDAY] != 0:
            auditday = week1[calendar.MONDAY]
        else:
        # if the first MONDAY isn't in the first week, it must be in the second week
        	auditday = week2[calendar.MONDAY]
print "%10s %2d" % (calendar.month_name[month], auditday)

Python 3 ตัวอย่าง

import calendar
# Create a plain text calendar
c = calendar.TextCalendar(calendar.THURSDAY)
str = c.formatmonth(2025, 1, 0, 0)
print(str)

# Create an HTML formatted calendar
hc = calendar.HTMLCalendar(calendar.THURSDAY)
str = hc.formatmonth(2025, 1)
print(str)
# loop over the days of a month
# zeroes indicate that the day of the week is in a next month or overlapping month
for i in c.itermonthdays(2025, 4):
    print(i)

    # The calendar can give info based on local such a names of days and months (full and abbreviated forms)
    for name in calendar.month_name:
        print(name)
    for day in calendar.day_name:
        print(day)
    # calculate days based on a rule: For instance an audit day on the second Monday of every month
    # Figure out what days that would be for each month, we can use the script as shown here
    for month in range(1, 13):
		# It retrieves a list of weeks that represent the month
        mycal = calendar.monthcalendar(2025, month)
		# The first MONDAY has to be within the first two weeks
        week1 = mycal[0]
        week2 = mycal[1]
        if week1[calendar.MONDAY] != 0:
            auditday = week1[calendar.MONDAY]
        else:
        # if the first MONDAY isn't in the first week, it must be in the second week
        	auditday = week2[calendar.MONDAY]
print("%10s %2d" % (calendar.month_name[month], auditday))

สรุป

  • In Pythonคุณสามารถจัดรูปแบบปฏิทินตามที่คุณต้องการ เนื่องจากคุณสามารถเปลี่ยนวันของเดือนที่จะเริ่มต้นได้
  • พิมพ์ปฏิทินในรูปแบบ HTML
  • ดึงข้อมูลจากระบบภายในเครื่อง เช่น เดือนหรือวันธรรมดา
  • ดึงรายการวันที่ระบุตลอดทั้งปี