وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

کم کردن یک روز از تاریخ در پایتون

0 15
زمان لازم برای مطالعه: 3 دقیقه


معرفی

تاریخ یکی از دشوارترین مفاهیم در برنامه نویسی است، عمدتاً به دلیل فرمت های بسیار متفاوتی که یک تاریخ می تواند به عنوان نمایش داده شود و تفاوت های ظریف مختلف تاریخ (سال های کبیسه، مناطق زمانی و غیره). به همین دلیل، دستکاری تاریخ ممکن است دشوار باشد. پس اگر نیاز به کم کردن یک روز از تاریخ داشته باشیم، چه؟

این عملیات در حوزه‌های مختلف مانند تجزیه و تحلیل داده‌ها، زمان‌بندی رویداد یا حتی موارد ساده‌ای مانند محاسبه تاریخ روز قبل بسیار رایج است. در این بایت، روش کم کردن یک روز از تاریخ را با استفاده از ماژول datetime و مهرهای زمانی یونیکس بررسی خواهیم کرد. ما همچنین سایر دستکاری‌های تاریخ را بررسی خواهیم کرد، مانند کم کردن بیش از یک روز.

با استفاده از زمان قرار مدول

پایتون زمان قرار ماژول یک ابزار قدرتمند برای مقابله با تاریخ و زمان است. برای کم کردن یک روز از تاریخ، می توانیم از عدد استفاده کنیم زمان دلتا شی از زمان قرار مدول. در اینجا به این صورت است:

from datetime import datetime, timedelta


today = datetime.now()


yesterday = today - timedelta(days=1)

print("Today's date:", today)
print("Yesterday's date:", yesterday)

وقتی این اسکریپت را اجرا می کنید، تاریخ امروز و تاریخ روز قبل را چاپ می کند.

با استفاده از مهر زمانی یونیکس

روش دیگر برای کم کردن یک روز از تاریخ، استفاده از مهر زمانی یونیکس خام است. مهر زمانی یونیکس راهی برای ردیابی زمان به صورت مجموع ثانیه های جاری است. این شمارش در دوره یونیکس در 1 ژانویه 1970 شروع می شود. برای کم کردن یک روز، 86400 ثانیه (که معادل 24 ساعت است) از مهر زمانی فعلی کم می کنیم.

import time


now = time.time()


yesterday_timestamp = now - 86400


yesterday = time.ctime(yesterday_timestamp)

print("Current date:", time.ctime(now))
print("Yesterday's date:", yesterday)

مجدداً این کد تاریخ جاری و تاریخ روز قبل را چاپ می کند.

پیشنهاد می‌کنیم بخوانید:  روش حذف کاما از رشته در پایتون

سایر دستکاری های تاریخ

بسیاری از دستکاری های تاریخ دیگری نیز وجود دارد که ممکن است به غیر از کم کردن یک روز نیاز داشته باشید. بیایید روش کم کردن بیش از یک روز از تاریخ را بررسی کنیم.

کم کردن بیش از یک روز

اگر می خواهید بیش از یک روز کم کنید، به سادگی می توانید مقدار آن را تغییر دهید days پارامتر در timedelta هدف – شی. به عنوان مثال، برای کم کردن سه روز از تاریخ فعلی:

from datetime import datetime, timedelta


today = datetime.now()


three_days_ago = today - timedelta(days=3)

print("Today's date:", today)
print("Date three days ago:", three_days_ago)

این اسکریپت تاریخ امروز و تاریخ سه روز پیش را چاپ خواهد کرد. شی timedelta کاملاً منعطف است و می توان از آن برای کم کردن هر تعداد روز، هفته یا حتی سال از تاریخ استفاده کرد.

کم کردن یک هفته

فرض کنید یک تاریخ دارید و می خواهید بدانید که تاریخ دقیقا یک هفته پیش چه بوده است. پایتون datetime ماژول این عملیات را ساده می کند. در اینجا یک مثال است:

from datetime import datetime, timedelta

today = datetime.now()
one_week_ago = today - timedelta(weeks=1)

print(f"Today's date: {today}")
print(f"One week ago: {one_week_ago}")

وقتی این کد را اجرا می کنید، خروجی مشابه زیر دریافت خواهید کرد:

Today's date: 2022-09-30 16:50:21.992728
One week ago: 2022-09-23 16:50:21.992728

توجه داشته باشید: یادت باشد timedelta تابع به شما امکان می دهد روز، ثانیه، میکروثانیه، میلی ثانیه، دقیقه، ساعت و هفته را کم کنید. به دلیل طول متغیر آنها مستقیماً ماه ها یا سال ها را پشتیبانی نمی کند.

کم کردن یک ماه

کم کردن یک ماه از تاریخ به دلیل تغییر در تعداد روزهای یک ماه کمی بیشتر است. برای انجام این کار، می‌توانیم تابعی ایجاد کنیم که بررسی می‌کند کم کردن یک روز باعث تغییر ماه می‌شود یا خیر. اگر چنین است، یک روز اضافی را کم می کند تا به ماه قبل برسد.

from datetime import datetime, timedelta

def subtract_a_month(date):
    target_month = (date.month - 1) if date.month != 1 else 12
    while date.month != target_month:
        date -= timedelta(days=1)
    return date

today = datetime.now()
one_month_ago = subtract_a_month(today)

print(f"Today's date: {today}")
print(f"One month ago: {one_month_ago}")

اجرای این کد ممکن است خروجی ای مانند زیر به شما بدهد:

Today's date: 2022-09-30 16:50:21.992728
One month ago: 2022-08-30 16:50:21.992728

نتیجه

در این بایت، چند روش برای کم کردن دوره‌های زمانی مختلف از تاریخ با استفاده از پایتون، از جمله یک هفته و یک ماه، بررسی کرده‌ایم. در حالی که پایتون datetime و calendar ماژول ها ابزار بسیار خوبی برای داشتن هستند، ممکن است همه موارد استفاده را پوشش ندهند. برای دستکاری های پیچیده تر تاریخ، از کتابخانه ای مانند استفاده کنید dateutil.

پیشنهاد می‌کنیم بخوانید:  'is' در مقابل '==' در پایتون - مقایسه شی

(برچسب‌ها به ترجمه)# python



منتشر شده در 1402-12-28 07:28:04

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید