Jump To:
Basic Usage
>>> from khayyam import * >>> JalaliDate(1346, 12, 30) khayyam.JalaliDate(1346, 12, 30, Chaharshanbeh)>>> JalaliDatetime(989, 3, 25, 10, 43, 23, 345453) khayyam.JalaliDatetime(989, 3, 25, 10, 43, 23, 345453, Seshanbeh)
Current date and time
>>> print(JalaliDatetime.now()) khayyam.JalaliDatetime(1394, 5, 18, 16, 4, 48, 628383, Yekshanbeh)>>> print(JalaliDatetime.now(TehranTimezone()) - timedelta(days=6*30)) 1393-11-02 20:01:11.663719+03:30>>> print(JalaliDate.today()) 1394-4-30
Parsing & Formatting
>>> print(JalaliDatetime.now().strftime('%C')) شنبه ۳ مرداد ۱۳۹۴ ۰۲:۳۷:۵۲ ب.ظ>>> JalaliDatetime.strptime(u'چهارشنبه ۳۱ تیر ۱۳۹۴ ۰۵:۴۵:۴۰ ب.ظ', '%C') khayyam.JalaliDatetime(1394, 4, 31, 17, 45, 40, 0, Chaharshanbeh)
Converting
>>> from datetime import date, datetime >>> JalaliDate(1394, 4, 31).todate() datetime.date(2015, 7, 22)>>> now = JalaliDatetime(1394, 4, 31, 15, 38, 6, 37269) >>> now.todate() datetime.date(2015, 7, 22)>>> now.todatetime() datetime.datetime(2015, 7, 22, 15, 38, 6, 37269)>>> JalaliDatetime(datetime(2015, 7, 22, 14, 47, 9, 821830)) khayyam.JalaliDatetime(1394, 4, 31, 14, 47, 9, 821830, Chaharshanbeh)>>> JalaliDatetime(datetime(2015, 7, 22, 14, 47, 9, 821830, TehranTimezone())) khayyam.JalaliDatetime(1394, 4, 31, 14, 47, 9, 821830, tzinfo=+03:30 dst:60, Chaharshanbeh)>>> JalaliDate(date(2015, 7, 22)) khayyam.JalaliDate(1394, 4, 31, Chaharshanbeh)
Arithmetics & Operators
>>> from datetime import timedelta >>> from khayyam import JalaliDate, JalaliDatetime >>> now = JalaliDatetime(1394, 4, 31, 16, 17, 31, 374398) >>> now + timedelta(days=1) khayyam.JalaliDatetime(1394, 5, 1, 16, 17, 31, 374398, Panjshanbeh)>>> now + timedelta(seconds=3600) khayyam.JalaliDatetime(1394, 4, 31, 17, 17, 31, 374398, Chaharshanbeh)>>> now - timedelta(seconds=3600) khayyam.JalaliDatetime(1394, 4, 31, 15, 17, 31, 374398, Chaharshanbeh)>>> yesterday = now - timedelta(1) >>> yesterday khayyam.JalaliDatetime(1394, 4, 30, 16, 17, 31, 374398, Seshanbeh)>>> now - yesterday datetime.timedelta(1)>>> JalaliDatetime.now() - now datetime.timedelta(0, 478, 328833) # 478 seconds taken to writing this section
Comparison
>>> now > yesterday True>>> now != yesterday True>>> now.todate() == yesterday.todate() False
Change Log
- 3.0.15:
BUGFIX: Removing from sphinx.util import inspect from jalali_datetime.py.
- 3.0.11
Allmost the all API’s are documented.
- 3.0.10
Imoprting JalaliDateFormatter & JalaliDatetimeFormatter in __init__.py
Accept also callable in JalaliDatetime.__init__(tzinfo=…) for tzinfo argument.
JalaliDatetime APIs, well documented.
- 3.0.9
Removing pypy from travis, due the travis bug: buffer overflow !
- 3.0.0
Raising TypeError instead of ValueError on overloaded operators, if the given type is mismatch.
Fixing tests to pass on systems that configured as UTC.
100% Code coverage
Moving all tests to khayyam/tests
Removing some uncovered, obsolete code lines
- 2.11.0
Using pure C instead of cython. Now the C extension is as fast as possible.
Including OSX in travis.yaml for python 2 & 3
Including pypy 2 & 3 tests in travis.yaml
- 2.10.0
Add english weekday format directive
- 2.9.8
Registering on travis-ci.org
Registering on coveralls.io
Registering on requires.io
- 2.9.7
Fixing problem in setup.py in python3 #15
- 2.9.3
setup.py for windows
- 2.9.1
Release !
- 2.9.1b2
encoding all __repr__ functions
- 2.9.1b1 (2015-07-30)
Fixing setup.py bug
- 2.9.1b0 (2015-07-30)
Using any available C compiler if cython is not available.
Using pure python if any error raised on installation with extension.
- 2.9.0b0 (2015-07-30)
- All algorithms reimplemented using cython and static typing, so the calculation
with new C extension is very faster than python pure algorithm implementation.
Fallback switch to pure python algorithm implementation, if compiled binaries not available.
Test case(s) for algorithms(C & Python).
- 2.8.0b1 (2015-07-28)
Jalalidate.timetuple method implemented from scratch including unit test.
Some methods with underscore renamed: JalaliDate.*_ascii to JalaliDate.*ascii
- 2.7.0b2 (2015-07-26)
README.rst
- 2.7.0-beta (2015-07-25)
some bug fixes.
method Jalalidate.fromdate removed. use constructor instead: JalaliDate(date)
method Jalalidate.fromjulianday removed. use constructor instead: JalaliDate(julian_days=..)
method Jalalidate.fromdatetime removed. use constructor instead: JalaliDatetime(datetime)
- 2.6.0-beta (2015-07-25)
All possible formatting directives(a-z, A-Z) are supported, except: T
All format directives are tested.
Formatting and parsing test cases moved to khayyam.formatting.tests package.
In project: docs/html
JalaliDate.from_julian_days renamed to JalaliDate.fromjuliandays
JalaliDate.from_julian_days renamed to JalaliDate.fromjuliandays
JalaliDate.days_in_month renamed to JalaliDate.daysinmonth
JalaliDate.is_leap renamed to JalaliDate.isleap
JalaliDatetime Modern properties.
README.md updated
- 2.5.0-beta (2015-07-23)
Doc: doctest
Doc: formatting and parsing directives table.
Doc: adding examples of new formatting directives in introduction: %D, %J, %R, %N, %n, %F, %h, %i, %r, %s, %o.
local date & time formats are changed: digits -> persian
Formatting and parsing test cases has been separated
- 2.4.0-beta (2015-07-22)
Persian Numbers
%D, %J, %R, %N, %n, %F, %h, %i, %r, %s, %o directives has been added.
- 2.3.0-alpha (2015-07-22)
Constants are moved to formatting packages except MINYEAR, MAXYEAR ans weekdays.
Doc: Introduction -> Formatting & parsing
Doc: Introduction -> Converting
New methods jalaliDate.todate, jalaliDate.fromdate, jalaliDatetime.todatetime and jalaliDatetime.fromdatetime
Removed methods jalaliDate.to_date, jalaliDate.from_date, jalaliDatetime.to_datetime and jalaliDatetime.fromdate_time
- 2.2.1-alpha (2015-07-21)
Doc: Reading package’s version automatically from khayyam/__init__.py in sphinx/conf.py
Doc: Installation: (PYPI, Development version)
Doc: Testing
Doc: Contribution
- 2.2.0-alpha (2015-07-21)
Generating API Documentation
- 2.1.0-alpha (2015-07-20)
Adding ascii weekdayname in JalaliDatetime and JalaliDate representation(__repr__).
- 2.0.0-alpha (2015-07-19) Incompatible with < 2.0.0
JalaliDate: method localformat renamed to localdateformat.
JalaliDatetime: method localformat renamed to localdatetimeformat.
JalaliDatetime: method localshortformat_ascii renamed to localshortformatascii.
JalaliDatetime: method localdatetimeformat_ascii renamed to localdatetimeformatascii.
JalaliDatetime: method ampm_ascii renamed to ampmascii.
JalaliDatetime: Migrating to New Formatter/Parser Engine
TehTz: renamed to TehranTimezone
Comparison and Timezones
Comparison with datetime.date & datetime.datetime
Fixing timezone bug
- 1.1.0 (2015-07-17)
JalaliDate: New Formatter/Parser & full unittests.
Metadata
Release files for Khayyam 3.0.17
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| Khayyam-3.0.17.tar.gz | 47.0 kB | Details |
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| Khayyam-3.0.17-cp36-cp36m-macosx_10_11_x86_64.whl | CPython 3.6 | CPython 3.6 pymalloc | macOS 10.11+ x86-64 | Details |
| Khayyam-3.0.17-cp27-cp27m-macosx_10_11_x86_64.whl | CPython 2.7 | CPython 2.7 pymalloc | macOS 10.11+ x86-64 | Details |
Total release size: 145.0 kB
Release files / Khayyam-3.0.17.tar.gz
| Download URL | Khayyam-3.0.17.tar.gz |
|---|---|
| Size | 47.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d0a30c6e9caa56a7f730879df8f3fe0ad7d9fa8c57b0d8f479cfa0460a7647f2
|
|
BLAKE2b-256 checksum How to use checksums |
09510af60dfa44b5cc8719ab29d73e8d281cfa628b74ea621548ce2e2dbdd088
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / Khayyam-3.0.17-cp36-cp36m-macosx_10_11_x86_64.whl
| Download URL | Khayyam-3.0.17-cp36-cp36m-macosx_10_11_x86_64.whl |
|---|---|
| Size | 49.0 kB |
| Tags | CPython 3.6 CPython 3.6 pymalloc macOS 10.11+ x86-64 |
|
SHA-256 checksum How to use checksums |
8b444aa453ad72d549e065be09a3312e6140a8e015850a890b2f27c8a435eade
|
|
BLAKE2b-256 checksum How to use checksums |
b4a7fa299c90168a3afc12a6e4ac5b164288f8ff4ea52ac8f15a13ee4ceb00fc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Release files / Khayyam-3.0.17-cp27-cp27m-macosx_10_11_x86_64.whl
| Download URL | Khayyam-3.0.17-cp27-cp27m-macosx_10_11_x86_64.whl |
|---|---|
| Size | 49.0 kB |
| Tags | CPython 2.7 CPython 2.7 pymalloc macOS 10.11+ x86-64 |
|
SHA-256 checksum How to use checksums |
aa389c52bda8813ca7af177ea19077455ac7ee64ae44c3eac44dc675be1bb316
|
|
BLAKE2b-256 checksum How to use checksums |
2329f1d2c9684b3a3dc199b50435a69b0163cc40c3334292dd71e7a9ba17e343
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |