Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit eb2be33

Browse files
author
Saeid
committed
l25: datetime.time start
1 parent 2a0474d commit eb2be33

File tree

1 file changed

+122
-5
lines changed

1 file changed

+122
-5
lines changed

‎lessons/l25.rst

Lines changed: 122 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@
176176
کلاس ``datetime.date``
177177
~~~~~~~~~~~~~~~~~~~~~~~~~~~
178178

179-
این کلاس نمایش ایجاد یک شی تاریخ بر اساس گاه‌شماری میلادی (Gregorian calendar) در زبان برنامه‌نویسی پایتون می‌باشد. در ادامه این بخش به بررسی چگونگی ایجاد شی و اجزای آن خواهیم پرداخت.
179+
این کلاس [`اسناد پایتون <https://docs.python.org/3/library/datetime.html#date-objects>`__] نمایش ایجاد یک شی تاریخ بر اساس گاه‌شماری میلادی (Gregorian calendar) در زبان برنامه‌نویسی پایتون می‌باشد. در ادامه این بخش به بررسی چگونگی ایجاد شی و اجزای آن خواهیم پرداخت.
180180

181181
ایجاد شی تاریخ
182182
------------------
@@ -239,16 +239,16 @@
239239
>>> datetime.MAXYEAR
240240
9999
241241

242-
>>> datetime.MINYEAR <= date.year <= datetime.MAXYEAR
242+
>>> datetime.MINYEAR <= d.year <= datetime.MAXYEAR
243243
True
244-
>>> 1 <= date.month <= 12
244+
>>> 1 <= d.month <= 12
245245
True
246-
>>> 1 <= date.day <= 31
246+
>>> 1 <= d.day <= 31
247247
True
248248

249249
باید توجه داشت که مقدار این سه attribute پس از نمونه‌سازی قابل تغییر نخواهد بود و به اصطلاح read-only هستند::
250250

251-
>>> date.year = 2022
251+
>>> d.year = 2022
252252
Traceback (most recent call last):
253253
File "<stdin>", line 1, in <module>
254254
AttributeError: attribute 'year' of 'datetime.date' objects is not writable
@@ -424,6 +424,123 @@
424424
کلاس ``datetime.time``
425425
~~~~~~~~~~~~~~~~~~~~~~~~~~~
426426

427+
این کلاس [`اسناد پایتون <https://docs.python.org/3/library/datetime.html#time-objects>`__] نمایش ایجاد یک شی ساعت مشخص از روز در زبان برنامه‌نویسی پایتون می‌باشد. در ادامه این بخش به بررسی چگونگی ایجاد شی و اجزای آن خواهیم پرداخت.
428+
429+
ایجاد شی ساعت
430+
------------------
431+
432+
به دو شیوه زیر می‌توان یک شی ساعت از نوع ``datetime.time`` ایجاد کرد:
433+
434+
::
435+
436+
>>> import datetime
437+
438+
>>> t = datetime.time(hour=10, minute=4, second=30)
439+
>>> t = datetime.time.fromisoformat('10:04:30') # Python 3.7
440+
441+
>>> t
442+
datetime.time(10, 4, 30)
443+
>>> type(t)
444+
<class 'datetime.time'>
445+
446+
>>> t.hour
447+
10
448+
>>> t.minute
449+
4
450+
>>> t.second
451+
30
452+
>>> t.microsecond
453+
0
454+
>>> print(t.tzinfo)
455+
None
456+
>>> t.fold
457+
0
458+
459+
460+
461+
**۱- با استفاده از نمونه‌سازی**::
462+
463+
time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)
464+
465+
::
466+
467+
468+
>>> import datetime
469+
>>> t = datetime.time(22, 4, 30)
470+
471+
472+
473+
همانطور که از تعریف این کلاس مشخص است، برای نمونه‌سازی از کلاس ``datetime.time`` می‌توان شش Instance attribute آن را مقداردهی نماییم. این شش attribute که همگی اختیاری و دارای مقدار پیش‌فرض هستند عبارتند از:
474+
475+
* ``hour``: از نوع ``int`` می‌باشد و مقداری برابر با ساعت مورد نظر خواهد داشت. این مقدار می‌بایست عددی از بین اعداد ``0`` تا ``24`` باشد (``range(24)``).
476+
477+
* ``minute``: از نوع ``int`` می‌باشد و مقداری برابر با دقیقه مورد نظر خواهد داشت که می‌بایست عددی از بین اعداد ``0`` تا ``60`` باشد (``range(60)``).
478+
479+
* ``second``: از نوع ``int`` می‌باشد و مقداری برابر با ثانیه مورد نظر خواهد داشت که می‌بایست عددی از بین اعداد ``0`` تا ``60`` باشد (``range(60)``).
480+
481+
* ``microsecond``: از نوع ``int`` می‌باشد و مقداری برابر با میکروثانیه مورد نظر خواهد داشت که می‌بایست عددی از بین اعداد ``0`` تا ``1000000`` باشد (``range(1000000)``). هر میکروثانیه برابر با 0.000001 ثانیه می‌باشد.
482+
483+
* ``tzinfo``: معرف منطقه زمانی (Time zone) است که مقدار پیش‌فرض آن ``None`` می‌باشد و می‌تواند یک شی از زیرکلاس‌های (subclass) کلاس ``tzinfo`` [`اسناد پایتون <https://docs.python.org/3/library/datetime.html#datetime.tzinfo>`__] را بپذیرد.
484+
485+
* ``fold``: از نسخه 3.6 پایتون به بعد اضافه شده است و تنها با استفاده از شیوه نام=مقدار قابل مقداردهی می‌باشد.
486+
487+
باید توجه داشت که مقدار این شش attribute پس از نمونه‌سازی قابل تغییر نخواهد بود و به اصطلاح read-only هستند::
488+
489+
>>> t.hour = 14
490+
Traceback (most recent call last):
491+
File "<stdin>", line 1, in <module>
492+
AttributeError: attribute 'hour' of 'datetime.time' objects is not writable
493+
494+
|
495+
496+
**۲- با استفاده از کلاس متد** ``fromisoformat`` [`اسناد پایتون <https://docs.python.org/3/library/datetime.html#datetime.time.fromisoformat>`__] از کلاس ``datetime.time`` (البته از نسخه 3.7 پایتون به بعد)، در تعریف این متد یک پارامتر از نوع ``str`` قرار داده شده است که در واقع این متد یک ساعت را براساس قالب کلی استاندارد ISO 8601 [`ویکی‌پدیا <https://en.wikipedia.org/wiki/ISO_8601>`__] دریافت و یک شی معادل از کلاس ``datetime.time`` را برمی‌گرداند. این قالب معمولا برابر ``hh:mm:ss`` می‌باشد که از سمت چپ معرف دو رقم ساعت، دونقطه (colon)، دو رقم دقیقه، دونقطه (colon) و دو رقم ثانیه می‌باشد؛ همانند: ``04:23:01``::
497+
498+
>>> import datetime
499+
500+
::
501+
502+
>>> t = datetime.time.fromisoformat('04')
503+
>>> t
504+
datetime.time(4, 0)
505+
506+
::
507+
508+
>>> t = datetime.time.fromisoformat('04:23')
509+
>>> t
510+
datetime.time(4, 23)
511+
512+
::
513+
514+
515+
>>> t = datetime.time.fromisoformat('04:23:01')
516+
>>> t
517+
datetime.time(4, 23, 1)
518+
519+
::
520+
521+
>>> t = datetime.time.fromisoformat('04:23:01.000384')
522+
>>> t
523+
datetime.time(4, 23, 1, 384)
524+
525+
::
526+
527+
>>> t = datetime.time.fromisoformat('04:23:01+04:30')
528+
>>> t
529+
datetime.time(4, 23, 1, tzinfo=datetime.timezone(datetime.timedelta(seconds=16200)))
530+
531+
::
532+
533+
>>> t = datetime.time.fromisoformat('04:23:01.000384+04:30')
534+
>>> t
535+
datetime.time(4, 23, 1, 384, tzinfo=datetime.timezone(datetime.timedelta(seconds=16200)))
536+
537+
::
538+
539+
>>> t = datetime.time.fromisoformat('04+04:30')
540+
>>> t
541+
datetime.time(4, 0, tzinfo=datetime.timezone(datetime.timedelta(seconds=16200)))
542+
543+
427544

428545
کلاس ``datetime.datetime``
429546
~~~~~~~~~~~~~~~~~~~~~~~~~~~

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /