کار با تاریخ و زمان در پایتون با datetime
پایتون یک زبان برنامهنویسی قدرتمند است که امکان کار با تاریخ و زمان را به صورت حرفهای فراهم کرده است. ما در این مقاله قصد داریم به بررسی نحوه کار با تاریخ و زمان در پایتون با استفاده از ماژول datetime بپردازیم.
آشنایی با ماژول datetime
ماژول datetime یکی از ماژولهای داخلی پایتون است که امکان کار با تاریخ و زمان را فراهم میکند. این ماژول شامل کلاسهای مختلفی برای نمایش تاریخ، زمان و ترکیب آنها میباشد.
- date: برای نمایش تاریخ
- time: برای نمایش زمان
- datetime: برای نمایش تاریخ و زمان
نمایش تاریخ و زمان فعلی
برای نمایش تاریخ و زمان فعلی میتوان از کلاس datetime استفاده کرد. در زیر یک مثال ساده برای نمایش تاریخ و زمان فعلی آورده شده است:
import datetime
now = datetime.datetime.now()
print("تاریخ و زمان فعلی:", now)
در این مثال، تابع now() تاریخ و زمان فعلی را برمیگرداند و سپس در خروجی چاپ میشود.
ساختار تاریخ و زمان
یک شیء datetime شامل چندین بخش مختلف است:
- سال (year)
- ماه (month)
- روز (day)
- ساعت (hour)
- دقیقه (minute)
- ثانیه (second)
برای دسترسی به هر یک از این بخشها میتوان از متدهای مربوطه استفاده کرد:
import datetime
now = datetime.datetime.now()
print("سال:", now.year)
print("ماه:", now.month)
print("روز:", now.day)
print("ساعت:", now.hour)
print("دقیقه:", now.minute)
print("ثانیه:", now.second)
کار با تاریخ
برای کار با تاریخ میتوان از کلاس date استفاده کرد. این کلاس شامل اطلاعاتی مانند سال، ماه و روز میباشد.
import datetime
today = datetime.date.today()
print("تاریخ امروز:", today)
همچنین میتوان تاریخهای مختلف را با هم مقایسه کرد:
import datetime
date1 = datetime.date(۱۴۰۲, ۱, ۱)
date2 = datetime.date(۱۴۰۲, ۱, ۱۵)
if date1 < date2:
print("date1 قبل از date2 است")
کار با زمان
برای کار با زمان میتوان از کلاس time استفاده کرد. این کلاس شامل اطلاعاتی مانند ساعت، دقیقه و ثانیه میباشد.
import datetime
now = datetime.datetime.now()
current_time = now.time()
print("زمان فعلی:", current_time)
همچنین میتوان زمانهای مختلف را با هم مقایسه کرد:
import datetime
time1 = datetime.time(۸, ۰, ۰)
time2 = datetime.time(۱۲, ۰, ۰)
if time1 < time2:
print("time1 قبل از time2 است")
تبدیل تاریخ و زمان
گاهی اوقات لازم است تاریخ و زمان را از یک فرمت به فرمت دیگری تبدیل کنیم. میتوان از تابع strftime برای این کار استفاده کرد:
import datetime
now = datetime.datetime.now()
formatted_time = now.strftime("%Y-%m-%d %H:%M:%S")
print("تاریخ و زمان فعلی (فرمت شده):", formatted_time)
در این مثال، %Y سال، %m ماه، %d روز، %H ساعت، %M دقیقه و %S ثانیه را نمایش میدهد.
تفاوت بین تاریخها
برای محاسبه تفاوت بین دو تاریخ میتوان از کلاس timedelta استفاده کرد:
import datetime
date1 = datetime.date(۱۴۰۲, ۱, ۱)
date2 = datetime.date(۱۴۰۲, ۱, ۱۵)
difference = date2 - date1
print("تفاوت بین دو تاریخ:", difference.days, "روز")
در این مثال، difference یک شیء timedelta است که تعداد روزهای بین دو تاریخ را نمایش میدهد.
زمان باقیمانده تا یک تاریخ خاص
اگر میخواهید بدانید که تا یک تاریخ خاص چند روز باقی مانده است، میتوانید از کد زیر استفاده کنید:
import datetime
target_date = datetime.date(۱۴۰۳, ۱, ۱)
today = datetime.date.today()
if today < target_date:
time_to_target = target_date - today
print("زمان باقیمانده تا تاریخ هدف:", time_to_target.days, "روز")
else:
print("تاریخ هدف گذشته است")
نمایش تاریخ و زمان در قالبهای مختلف
برای نمایش تاریخ و زمان در قالبهای مختلف میتوان از تابع strftime استفاده کرد:
import datetime
now = datetime.datetime.now()
print("فرمت ۱:", now.strftime("%Y-%m-%d"))
print("فرمت ۲:", now.strftime("%d/%m/%Y"))
print("فرمت ۳:", now.strftime("%B %d, %Y"))
در این مثال، %B ماه را به صورت کامل نمایش میدهد.
خواندن تاریخ و زمان از کاربر
برای خواندن تاریخ و زمان از کاربر میتوان از تابع input استفاده کرد:
import datetime
date_str = input("یک تاریخ را وارد کنید (YYYY-MM-DD): ")
time_str = input("یک زمان را وارد کنید (HH:MM:SS): ")
date_obj = datetime.datetime.strptime(date_str, "%Y-%m-%d").date()
time_obj = datetime.datetime.strptime(time_str, "%H:%M:%S").time()
print("تاریخ وارد شده:", date_obj)
print("زمان وارد شده:", time_obj)
نکات مهم و کاربردی
در هنگام کار با تاریخ و زمان، دقت به فرمتها و مناطق زمانی مختلف بسیار مهم است.
- همیشه چک کنید که تاریخ و زمان ورودی کاربر درست باشد.
- از کلاسهای مختلف datetime برای مدیریت تاریخ و زمان به صورت جداگانه استفاده کنید.
تمرین
import datetime
# تمرین: تاریخ و زمان فعلی را بگیرید و سپس 10 روز به آن اضافه کنید
now = datetime.datetime.now()
future_date = now + datetime.timedelta(days=10)
print("تاریخ و زمان فعلی:", now)
print("تاریخ و زمان 10 روز بعد:", future_date)
با انجام این تمرین، شما میتوانید نحوه کار با تاریخ و زمان در پایتون را بهتر درک کنید.
منابع
برای یادگیری بیشتر در مورد کار با تاریخ و زمان در پایتون، میتوانید به منابع زیر مراجعه کنید:
- مستندات رسمی پایتون: datetime
- آموزشهای آنلاین و ویدئوهای آموزشی در سایتهای مختلف مانند YouTube و Udemy