آموزش تاریخ و زمان در برنامه نویسی پایتون ۳

3 سال پیش

 آموزش تاریخ و زمان در برنامه نویسی پایتون ۳

در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش تاریخ و زمان در برنامه نویسی پایتون ۳ خواهیم پرداخت.

پیشنهاد ویژه : پکیج آموزش صفر تا صد پایتون

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

 

تیک چیست؟

فواصل زمانی اعداد ممیز شناور بر حسب واحد ثانیه هستند. لحظه های خاص در زمان از ساعت ۱۲:۰۰ صبح، ۱ ژانویه ۱۹۷۰ (دوران) بر حسب ثانیه بیان می شوند.

یک ماژول زمان محبوب در پایتون موجود است که توابعی را برای کار با زمان‌ها و تبدیل بین نمایش‌ها فراهم می‌کند. تابع ()time.time زمان فعلی سیستم را از ساعت ۱۲:۰۰ صبح، ۱ ژانویه ۱۹۷۰ (دوره) برمی گرداند.

مثال

#!/usr/bin/python3
import time;      # This is required to include time module.

ticks = time.time()
print ("Number of ticks since 12:00am, January 1, 1970:", ticks)

 

این امر نتیجه ای به شرح زیر ایجاد می کند –

Number of ticks since 12:00am, January 1, 1970: 1455508609.34375

 

محاسبه تاریخ با کنه آسان است. با این حال، تاریخ های قبل از دوران را نمی توان به این شکل نشان داد. تاریخ‌های آینده دور نیز نمی‌توانند به این شکل نمایش داده شوند – نقطه برش زمانی در سال ۲۰۳۸ برای یونیکس و ویندوز است.

TimeTuple چیست؟

بسیاری از توابع زمان پایتون، زمان را به صورت یک تاپلی ۹ عددی کنترل می کنند، همانطور که در زیر نشان داده شده است.

Index Field Values
۰ ۴-digit year ۲۰۱۶
۱ Month ۱ to 12
۲ Day ۱ to 31
۳ Hour ۰ to 23
۴ Minute ۰ to 59
۵ Second ۰ to 61 (60 or 61 are leap-seconds)
۶ Day of Week ۰ to 6 (0 is Monday)
۷ Day of year ۱ to 366 (Julian day)
۸ Daylight savings -۱, ۰, ۱, -۱ means library determines DST

 

به عنوان مثال –

import time

print (time.localtime());

 

این امر نتیجه ای را به شرح زیر ایجاد می کند –

time.struct_time(tm_year = 2016, tm_mon = 2, tm_mday = 15, tm_hour = 9, 
   tm_min = 29, tm_sec = 2, tm_wday = 0, tm_yday = 46, tm_isdst = 0)

 

تاپل بالا معادل ساختار struct_time است. این ساختار دارای ویژگی های زیر است –

Index Attributes Values
۰ tm_year ۲۰۱۶
۱ tm_mon ۱ to 12
۲ tm_mday ۱ to 31
۳ tm_hour ۰ to 23
۴ tm_min ۰ to 59
۵ tm_sec ۰ to 61 (60 or 61 are leap-seconds)
۶ tm_wday ۰ to 6 (0 is Monday)
۷ tm_yday ۱ to 366 (Julian day)
۸ tm_isdst -۱, ۰, ۱, -۱ means library determines DST

 

آموزش دریافت زمان فعلی در پایتون ۳

برای ترجمه یک لحظه زمانی از ثانیه از زمان مقدار ممیز شناور دوره به یک تایپل، مقدار ممیز شناور را به یک تابع (به عنوان مثال، زمان محلی) منتقل کنید که یک تاپل زمانی را با همه نه آیتم معتبر برمی‌گرداند.

#!/usr/bin/python3
import time

localtime = time.localtime(time.time())
print ("Local current time :", localtime)

 

این نتیجه زیر را ایجاد می کند که می تواند به هر شکل قابل ارائه دیگری قالب بندی شود –

Local current time : time.struct_time(tm_year = 2016, tm_mon = 2, tm_mday = 15, 
   tm_hour = 9, tm_min = 29, tm_sec = 2, tm_wday = 0, tm_yday = 46, tm_isdst = 0)

 

دریافت زمان قالب بندی شده

شما می توانید هر زمان که بخواهید بر اساس نیاز خود قالب بندی کنید، اما یک روش ساده برای بدست آوردن زمان در قالبی خوانا، asctime() است.

#!/usr/bin/python3
import time

localtime = time.asctime( time.localtime(time.time()) )
print ("Local current time :", localtime)

 

این نتیجه زیر را ایجاد می کند –

Local current time : Mon Feb 15 09:34:03 2016

 

دریافت تقویم برای یک ماه

ماژول تقویم طیف گسترده ای از روش ها را برای بازی با تقویم های سالانه و ماهانه ارائه می دهد. در اینجا، ما یک تقویم برای یک ماه معین چاپ می کنیم (ژانویه ۲۰۰۸) –

#!/usr/bin/python3
import calendar

cal = calendar.month(2016, 2)
print ("Here is the calendar:")
print (cal)

 

این نتیجه زیر را ایجاد می کند –

Here is the calendar:
   February 2016
Mo Tu We Th Fr Sa Su
 ۱  ۲  ۳  ۴  ۵  ۶  ۷
 ۸  ۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴
۱۵ ۱۶ ۱۷ ۱۸ ۱۹ ۲۰ ۲۱
۲۲ ۲۳ ۲۴ ۲۵ ۲۶ ۲۷ ۲۸
۲۹

 

ماژول زمان

یک ماژول زمان محبوب در پایتون موجود است که توابعی را برای کار با زمان ها و تبدیل بین نمایش ها ارائه می دهد. در اینجا لیستی از تمام روش های موجود است.

Sr.No. Function & Description
۱ time.altzoneافست منطقه زمانی DST محلی، در چند ثانیه در غرب UTC، در صورتی که یکی تعریف شده باشد. اگر منطقه زمانی DST محلی در شرق UTC باشد، منفی است (مانند اروپای غربی، از جمله بریتانیا). اگر نور روز غیر صفر است از این استفاده کنید.
۲ time.asctime([tupletime])یک تاپل زمانی را می‌پذیرد و یک رشته ۲۴ نویسه‌ای قابل خواندن مانند ‘Tue Dec 11 18:07:14 2008’ برمی‌گرداند.
۳ time.clock( )زمان فعلی CPU را به صورت یک عدد ممیز شناور از ثانیه برمی‌گرداند. برای اندازه‌گیری هزینه‌های محاسباتی رویکردهای مختلف، مقدار time.clock مفیدتر از time.time () است.
۴ time.ctime([secs])مانند asctime(localtime(secs)) و بدون آرگومان مانند ( )asctime است.
۵ time.gmtime([secs])یک لحظه بیان شده بر حسب ثانیه از زمان را می پذیرد و یک t زمان مضاعف را با زمان UTC برمی گرداند. توجه – t.tm_isdst همیشه ۰ است
۶ time.localtime([secs])یک لحظه را می‌پذیرد که بر حسب ثانیه از آن دوره بیان می‌شود و یک t تایم زمانی را با زمان محلی برمی‌گرداند (بسته به اینکه DST بر اساس قوانین محلی برای ثانیه‌های فوری اعمال شود یا خیر، t.tm_isdst 0 یا ۱ است).
۷ time.mktime(tupletime)یک لحظه را می‌پذیرد که در زمان محلی به‌عنوان یک ضرب زمانی بیان می‌شود و یک مقدار ممیز شناور را با لحظه‌ای که در ثانیه از آن دوره بیان می‌شود، برمی‌گرداند.
۸ time.sleep(secs)رشته تماس را برای چند ثانیه به حالت تعلیق در می آورد.
۹ time.strftime(fmt[,tupletime])یک لحظه را می‌پذیرد که به‌عنوان یک تاپل زمانی در زمان محلی بیان می‌شود و رشته‌ای را برمی‌گرداند که نشان‌دهنده آنی است که توسط رشته fmt مشخص شده است.
۱۰ time.strptime(str,fmt = ‘%a %b %d %H:%M:%S %Y’)str را با توجه به قالب رشته fmt تجزیه می کند و instant را در قالب time-tuple برمی گرداند.
۱۱ time.time( )لحظه لحظه فعلی را برمی‌گرداند، تعداد ممیز شناور ثانیه‌ها از زمان.
۱۲ time.tzset()

قوانین تبدیل زمان مورد استفاده توسط روال های کتابخانه را بازنشانی می کند. متغیر محیطی TZ نحوه انجام این کار را مشخص می کند.

 

دو ویژگی مهم با ماژول زمان وجود دارد. آنها هستند –

۱ time.timezone

ویژگی time.timezone برحسب ثانیه منطقه زمانی محلی (بدون DST) از UTC (> 0 در قاره آمریکا؛ <=0 در بیشتر اروپا، آسیا، آفریقا) است.

۲ time.tzname

ویژگی time.tzname یک جفت رشته وابسته به محلی است که به ترتیب نام منطقه زمانی محلی بدون و با DST است.

 

ماژول تقویم

ماژول تقویم تابع های مرتبط با تقویم، از جمله توابع چاپ یک تقویم متنی برای یک ماه یا سال معین را ارائه می کند.

به طور پیش فرض، تقویم دوشنبه را به عنوان اولین روز هفته و یکشنبه را به عنوان آخرین روز در نظر می گیرد. برای تغییر این، تابع calendar.setfirstweekday() را فراخوانی کنید.

در اینجا لیستی از توابع موجود با ماژول تقویم آمده است

Sr.No. Function & Description
۱ calendar.calendar(year,w = 2,l = 1,c = 6)

یک رشته چند خطی را با یک تقویم برای سال برمی‌گرداند که به سه ستون که با فاصله‌های c از هم جدا شده‌اند، قالب‌بندی شده است. w عرض در کاراکترهای هر تاریخ است. طول هر خط ۲۱*w+18+2*c است. l تعداد خطوط هر هفته است.

۲ calendar.firstweekday( )

تنظیم فعلی را برای روزهای هفته که هر هفته شروع می شود، برمی گرداند. به‌طور پیش‌فرض، زمانی که تقویم برای اولین بار وارد می‌شود، این ۰ به معنای دوشنبه است.

۳ calendar.isleap(year)

اگر سال یک سال کبیسه باشد، True را برمی‌گرداند. در غیر این صورت false

۴ calendar.leapdays(y1,y2)

تعداد کل روزهای کبیسه را در سالهای درون محدوده (y1,y2) برمی گرداند.

۵ calendar.month(year,month,w = 2,l = 1)

یک رشته چند خطی را با یک تقویم برای ماه سال، یک خط در هفته به اضافه دو خط سرصفحه برمی‌گرداند. w عرض در کاراکترهای هر تاریخ است. هر خط دارای طول ۷*w+6 است. l تعداد خطوط هر هفته است.

۶ calendar.monthcalendar(year,month)

فهرستی از لیست های ints را برمی گرداند. هر فهرست فرعی نشان دهنده یک هفته است. روزهای خارج از ماه از سال روی ۰ تنظیم شده است. روزهای درون ماه به روز از ماه، ۱ و بالاتر تنظیم می شوند.

۷ calendar.monthrange(year,month)

دو عدد صحیح را برمی گرداند. اولین کد روز هفته برای اولین روز ماه در سال است. مورد دوم تعداد روزهای ماه است. کدهای روز هفته ۰ (دوشنبه) تا ۶ (یکشنبه) هستند. اعداد ماه از ۱ تا ۱۲ می باشد.

۸ calendar.prcal(year,w = 2,l = 1,c = 6)

مانند چاپ calendar.calendar (سال، w، l، c).

۹ calendar.prmonth(year,month,w = 2,l = 1)

مانند چاپ calendar.month (سال، ماه، w، l).

۱۰ calendar.setfirstweekday(weekday)

روز اول هر هفته را به روز هفته کد روز هفته تنظیم می کند. کدهای روزهای هفته ۰ (دوشنبه) تا ۶ (یکشنبه) هستند.

۱۱ calendar.timegm(tupletime)

معکوس time.gmtime: یک لحظه زمانی را به صورت ضربدر زمانی می پذیرد و همان لحظه را به عنوان یک عدد ممیز شناور از ثانیه پس از دوره برمی گرداند.

۱۲ calendar.weekday(year,month,day)

کد روز هفته را برای تاریخ معین برمی گرداند. کدهای روز هفته ۰ (دوشنبه) تا ۶ (یکشنبه) هستند. اعداد ماه ۱ (ژانويه) تا ۱۲ (دسامبر) است.

 

ماژول ها و توابع دیگر

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

  • ماژول زمان تاریخ
  • ماژول پیتز
  • ماژول dateutil

منبع

 

لیست جلسات قبل آموزش برنامه نوبسی پایتون ۳

  1. آموزش برنامه نویسی پایتون ۳
  2. آموزش موارد جدید در برنامه نویسی پایتون ۳
  3. آموزش مرور کلی برنامه نویسی پایتون ۳
  4. آموزش راه اندازی محیط برنامه نویسی پایتون ۳
  5. آموزش نحو در برنامه نویسی پایتون ۳
  6. آموزش انواع متغیرها در برنامه نویسی پایتون ۳
  7.  آموزش عملگرهای پایه در برنامه نویسی پایتون ۳
  8.  آموزش تصمیم گیری در برنامه نویسی پایتون ۳
  9.  آموزش حلقه ها در برنامه نویسی پایتون ۳
  10. آموزش اعداد در برنامه نویسی پایتون ۳
  11. آموزش رشته ها در برنامه نویسی پایتون ۳
  12.  آموزش لیست ها در برنامه نویسی پایتون ۳
  13.  آموزش تاپل ها در برنامه نویسی پایتون ۳
  14. آموزش دیکشنری در برنامه نویسی پایتون ۳
0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه