Python - Tarikh dan Masa

Halo di sana, penyihir Python masa depan! Hari ini, kita akan melakukan perjalanan yang menarik melalui kerajaan tarikh dan masa di Python. Sebagai guru komputer tetangga yang mesra anda, saya sangat gembira untuk membimbing anda melalui petualangan ini. Jadi, rakamkan rakaman wands anda (papan kekunci), dan mari kita melompat masuk!

Python - Date & Time

Apa itu Interval Tick?

Sebelum kita mula untuk mengganggu tarikh dan masa, mari kita fahami konsep dasar: interval tick. Di dunia komputer, masa sering diukur dalam tick. Tetapi apakah tick itu?

Tick adalah seperti detak jantung komputer anda. Ia adalah unit masa terkecil yang klock komputer anda dapat mengukur. Di Python, kita mengukur tick sebagai jumlah detik yang telah lalu sejak 1 Januari 1970, pada 00:00:00 UTC. Titik waktu ini sering dirujuk sebagai "epoh."

Mari lihat bagaimana kita dapat mendapatkan nilai tick saat ini:

import time

ticks = time.time()
print("Nilai tick saat ini:", ticks)

Jika anda menjalankan kod ini, anda akan melihat jumlah besar yang dicetak keluar. Itu adalah jumlah detik yang telah lalu sejak epoh. Cantik, kan?

Apa itu TimeTuple?

Sekarang, mari kita bercakap tentang TimeTuple. Ia bukan gerakan penyayang baru (walaupun ia tampak seperti satu!), tetapi lebih kepada cara Python mewakili masa.

TimeTuple adalah tuple yang mengandungi 9 elemen yang mewakili aspek masa yang berbeza:

Indeks Atribut Nilai
0 Tahun (cth., 2023)
1 Bulan 1-12
2 Hari 1-31
3 Jam 0-23
4 Minit 0-59
5 Detik 0-61 (60 dan 61 untuk detik khas)
6 Hari dalam minggu 0-6 (0 adalah Isnin)
7 Hari dalam tahun 1-366
8 DST -1, 0, 1 (Penanda Waktu Penyelamat Hari)

Jangan khawatir jika ini kelihatan mengganggu. Kita akan menggunakan elemen ini selama pelajaran kita, dan anda akan menjadi biasa dengan mereka dalam masa yang singkat!

Mendapatkan Masa Saat Ini

Mari kita mula dengan sesuatu yang mudah: mendapatkan masa saat ini. Python membuat ini sangat mudah dengan modul time:

import time

current_time = time.localtime()
print("Masa saat ini:", current_time)

Apabila anda menjalankan ini, anda akan melihat TimeTuple dicetak keluar. Setiap nombor berkoresponden dengan tabel yang kita lihat tadi. Misalnya, jika anda lihat time.struct_time(tm_year=2023, tm_mon=6, tm_mday=15, tm_hour=14, tm_min=30, tm_sec=0, tm_wday=3, tm_yday=166, tm_isdst=0), itu berarti ia adalah 15 Jun 2023, pada 2:30 PM.

Mendapatkan Masa yang Diformat

Walaupun TimeTuples adalah berguna untuk komputer, ia tidak begitu mesra manusia. Mari format masa kita dalam cara yang lebih mudah untuk dibaca:

import time

formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print("Masa yang diformat:", formatted_time)

Ini akan mencetak sesuatu seperti "2023-06-15 14:30:00". Lebih baik, kan? %Y, %m, %d, dll adalah kod format yang memberitahu Python bagaimana untuk susun elemen masa. Ia seperti memberikan Python templat untuk bagaimana anda ingin masa anda untuk kelihatan.

Mendapatkan Kalender untuk Sebulan

Sekarang, mari kita naikkan level dan cetak seluruh kalender untuk sebulan. Kita akan menggunakan modul calendar untuk ini:

import calendar

tahun = 2023
bulan = 6

print(calendar.month(tahun, bulan))

Ini akan mencetak kalender yang baik untuk Jun 2023. Ia seperti memiliki kalender meja kecil di atas program Python anda!

Modul time

Kita telah menggunakan modul time sedikit, tetapi mari kita eksplorasi lebih jauh. Modul ini menyediakan beberapa fungsi yang berkaitan dengan masa. Berikut adalah beberapa yang berguna:

import time

print("Masa saat ini dalam detik sejak epoh:", time.time())
print("Masa tempatan saat ini:", time.ctime())
print("Tidur selama 2 saat...")
time.sleep(2)
print("Bangun!")

Fungsi sleep() adalah sangat berguna apabila anda ingin program anda untuk berhenti sebentar. Ia seperti memberitahu kod anda untuk Ambil nap singkat!

Modul calendar

Kita telah lihat bagaimana untuk mencetak bulan, tetapi modul calendar dapat melakukan banyak lagi:

import calendar

print("Adakah 2023 adalah tahun kabisat?", calendar.isleap(2023))
print("Berapa tahun kabisat antara 2000 dan 2050?", calendar.leapdays(2000, 2050))
print("Apakah hari dalam minggu untuk 2023-06-15?", calendar.weekday(2023, 6, 15))

Fungsi ini membantu anda bekerja dengan kalender dan tarikh dengan mudah. Tak perlu lagi untuk menghitung menggunakan jari untuk mengetahui tahun kabisat!

Modul datetime Python

Modul datetime adalah seperti rakit penyelamat manipulasi masa di Python. Ia menggabungkan fungsi kedua-dua modul time dan calendar dan menambahkan lagi banyak fitur.

from datetime import datetime, date, time

# Tarikh dan masa saat ini
now = datetime.now()
print("Tarikh dan masa saat ini:", now)

# Membuat tarikh khusus
tanggal_lahir_saya = date(1990, 5, 15)
print("Tanggal lahir saya:", tanggal_lahir_saya)

# Membuat masa khusus
alarm = time(7, 30, 0)
print("Alarm ditetapkan untuk:", alarm)

Dengan datetime, anda dapat membuat, manipulasi, dan memformat tarikh dan masa dengan mudah.

Objek date Python

Objek date dari modul datetime membolehkan anda bekerja dengan tarikh (tahun, bulan, dan hari):

from datetime import date

today = date.today()
print("Tanggal hari ini:", today)
print("Tahun:", today.year)
print("Bulan:", today.month)
print("Hari:", today.day)

Ia seperti memiliki kalender pintar yang tahu hari apa dan dapat memberitahu anda semua tentang itu!

Objek time Python

Serupa, objek time membolehkan anda bekerja dengan masa (jam, minit, detik, mikrodetik):

from datetime import time

lunch_time = time(12, 30, 0)
print("Waktu makan tengahari:", lunch_time)
print("Jam:", lunch_time.hour)
print("Minit:", lunch_time.minute)
print("Detik:", lunch_time.second)

Sekarang anda dapat menjadwalkan coding break anda dengan presisi!

Objek datetime Python

Objek datetime menggabungkan date dan time, memberikan anda kawalan penuh atas kedua-duanya:

from datetime import datetime

now = datetime.now()
print("Tarikh dan masa saat ini:", now)
print("Tahun saat ini:", now.year)
print("Bulan saat ini:", now.month)
print("Hari saat ini:", now.day)
print("Jam saat ini:", now.hour)
print("Minit saat ini:", now.minute)
print("Detik saat ini:", now.second)

Ia seperti memiliki jam super-puas yang tahu semua tentang momen saat ini!

Objek timedelta Python

Terakhir tetapi tidak ketinggalan, mari kita bercakap tentang timedelta. Objek ini mewakili jangka masa waktu, dan ia sangat berguna untuk aritmatik tarikh:

from datetime import datetime, timedelta

now = datetime.now()
print("Tarikh dan masa saat ini:", now)

# Tambah 1 hari
_esok = now + timedelta(days=1)
print("Masa ini esok:", _esok)

# Kurangkan 1 minggu
minggu_lalu = now - timedelta(weeks=1)
print("Masa ini minggu lalu:", minggu_lalu)

Dengan timedelta, anda dapat melakukan perjalanan masa di atas kod anda! Well, sort of. Anda dapat dengan mudah mengira tarikh masa depan dan masa lalu, yang sangat berguna untuk banyak aplikasi.

Dan itu adalah, penyihir Python muda! Kita telah melakukan perjalanan yang menarik melalui dunia tarikh dan masa di Python. Ingat, praktek membuat perfect, jadi jangan ragu untuk bereksperimen dengan konsep ini. Sebelum anda tahu, anda akan dapat memanipulasi masa seperti seorang lord coding masa!

Credits: Image by storyset