Skip to main content

Extends datetime.time, allowing time arithmetic

Project description

Python’s “datetime” module has many uses, but it has a difficulty: you can’t do any arithmetic with “datetime.time”. Only with “datetime.datetime”. Now, there are good reasons for this: “What time will it be, 24 hours from now” has a lot of corner cases, including daylight savings time, leap seconds, historical timezone changes, and so on. But sometimes you really do need the simple case. Sometimes the perfect is the enemy of the good. And that’s why you have this module. This module will allow you to cocoon yourself in the comforting illusion that, in 24 hours, it will be the same time as it is right now.

And what freedom this illusion gives you! You can add a “datetime.timedelta” object to an “nptime” object, and it works! It will cycle around 24 hours, like modular arithmetic. You can ask “what time comes 1 day and 36 minutes after 12:24 pm?” and it will let you know: 1:00 pm. How lovely!

>>> from nptime import nptime
>>> from datetime import timedelta, date, datetime
>>> afternoon = nptime(12, 24) + timedelta(days=1, minutes=36)
>>> afternoon
nptime(13, 0)
>>> str(afternoon)
'13:00:00'

Maybe we’re talking about the afternoon of Guido van Rossum’s birthday. Lucky, we can combine “nptime” objects with “date” objects:

>>> datetime.combine(date(1956, 1, 31), afternoon)
datetime.datetime(1956, 1, 31, 13, 0, 0)

You can also ask “How long is it between 9:00 AM and 5:00 PM? It sure feels like a million years!”

>>> workday = nptime(hour=17) - nptime(hour=9)
>>> workday
datetime.timedelta(0, 28800)
>>> print workday
8:00:00

Nope, only 8 hours, how strange. Anyway, please use this module. It will be convenient. But don’t use it when talking about concrete time, time in a particular place, or anything like that. In fact, it doesn’t even notice “datetime.tzinfo” objects right now. Good luck.

Note: You can find the newest version at https://github.com/tgs/nptime .

You can find online documentation at http://tgs.github.com/nptime/ . The package is available for download from PyPi: easy_install nptime. This software is licensed under the 3-clause BSD License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nptime-0.4.1.tar.gz (4.7 kB view details)

Uploaded Source

Built Distribution

nptime-0.4.1-py27-none-any.whl (6.4 kB view details)

Uploaded Python 2.7

File details

Details for the file nptime-0.4.1.tar.gz.

File metadata

  • Download URL: nptime-0.4.1.tar.gz
  • Upload date:
  • Size: 4.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for nptime-0.4.1.tar.gz
Algorithm Hash digest
SHA256 f03e35bb1d198366bc4673bdfdfe19334df894ba7d4fbf27a2c1054e29947188
MD5 ef316e31b7735a446f4381632ddbbe65
BLAKE2b-256 1f5da679e97f5849431da34f1b59502fdaa2080d819d1f1240f16643e79dc326

See more details on using hashes here.

File details

Details for the file nptime-0.4.1-py27-none-any.whl.

File metadata

File hashes

Hashes for nptime-0.4.1-py27-none-any.whl
Algorithm Hash digest
SHA256 909ddbae087f421430418713c68ae0f0aceea2f9e3175c0d7780b30f3c900ba9
MD5 f8277023bbed3d54a1597a9ae46a63f3
BLAKE2b-256 559a5c0d8213bcf4337a8c2c63f892490358749bbac205409cd1c9c41f3e5ffb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page