|
176 | 176 | کلاس ``datetime.date``
|
177 | 177 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
178 | 178 |
|
179 | | -این کلاس نمایش ایجاد یک شی تاریخ بر اساس گاهشماری میلادی (Gregorian calendar) در زبان برنامهنویسی پایتون میباشد. در ادامه این بخش به بررسی چگونگی ایجاد شی و اجزای آن خواهیم پرداخت. |
| 179 | +این کلاس [`اسناد پایتون <https://docs.python.org/3/library/datetime.html#date-objects>`__] نمایش ایجاد یک شی تاریخ بر اساس گاهشماری میلادی (Gregorian calendar) در زبان برنامهنویسی پایتون میباشد. در ادامه این بخش به بررسی چگونگی ایجاد شی و اجزای آن خواهیم پرداخت. |
180 | 180 |
|
181 | 181 | ایجاد شی تاریخ
|
182 | 182 | ------------------
|
|
239 | 239 | >>> datetime.MAXYEAR
|
240 | 240 | 9999
|
241 | 241 |
|
242 | | - >>> datetime.MINYEAR <= date.year <= datetime.MAXYEAR |
| 242 | + >>> datetime.MINYEAR <= d.year <= datetime.MAXYEAR |
243 | 243 | True
|
244 | | - >>> 1 <= date.month <= 12 |
| 244 | + >>> 1 <= d.month <= 12 |
245 | 245 | True
|
246 | | - >>> 1 <= date.day <= 31 |
| 246 | + >>> 1 <= d.day <= 31 |
247 | 247 | True
|
248 | 248 |
|
249 | 249 | باید توجه داشت که مقدار این سه attribute پس از نمونهسازی قابل تغییر نخواهد بود و به اصطلاح read-only هستند::
|
250 | 250 |
|
251 | | - >>> date.year = 2022 |
| 251 | + >>> d.year = 2022 |
252 | 252 | Traceback (most recent call last):
|
253 | 253 | File "<stdin>", line 1, in <module>
|
254 | 254 | AttributeError: attribute 'year' of 'datetime.date' objects is not writable
|
|
424 | 424 | کلاس ``datetime.time``
|
425 | 425 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
426 | 426 |
|
| 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 | + |
427 | 544 |
|
428 | 545 | کلاس ``datetime.datetime``
|
429 | 546 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
0 commit comments