The Magic of time in Python...

We're going to learn about time (not time travel). Sorry to disappoint.

This can be quite a complicated thing because we humans don't have nice standardized time. Instead, we have:

  • 24-hour clocks

  • AM and PM

  • Months of differing lengths

  • Leap years

  • Leap seconds

And all sorts of oddities in our temporal framework.

Unix Epoch

πŸ‘‰ Your computer (and all of the other ones) uses something called the Unix epoch to measure time.

It counts the number of seconds elapsed since Jan 1st, 1970 (even when the power's off - there's a small battery on your motherboard that keeps this function running).

Then, it turns this into a meaningful format for you, you illogical human.

The datetime Library

To use the Unix epoch, we first need to import the datetime library, πŸ‘‰ Now I'm going to insert the date and assign it to a variable.

import datetime

myDate = datetime.date(year=2022, month=12, day= 7)

print(myDate)

# This code outputs '2022-12-07'

You HAVE to use the year -> month -> day format for your arguments. So Brits & Americans, put down your calendars and go find something else to argue about...

The reason for this format is that the elements get smaller (and less important) sequentially from left to right. This makes sorting much easier.

Asking for Today's Date

πŸ‘‰ Let's use datetime to automatically get today's date.

import datetime

today = datetime.date.today()

print(today)

# This code outputs the current date from your computer's clock.

Getting Date Input

πŸ‘‰ The easiest way to do this is to ask the user for day, month, and year in separate values.

import datetime

day = int(input("Day: ")) # Get all input as numbers. We're not at text input for months yet.
month = int(input("Month: "))
year = int(input("Year: "))

date = datetime.date(year, month, day)

print(date)

Delta Force

A common task in programs is to work out the difference between two dates, for example to calculate someone's age.

To do this, we use a time delta.

Delta is a computer science term that means the difference between two things.

A time delta is a difference in time. The time delta between when you were born and now is increasing all the time as you age.

πŸ‘‰ Here's some code that calculates a time delta between today and two weeks today to see what the date will be in two weeks.

import datetime

today = datetime.date.today() # Today's date

difference = datetime.timedelta(days=14) # The difference I want

newDate = today + difference # Add today to the delta difference to see the date in 14 days time.

print(newDate)

An Event Countdown Timer

Let's Put our learnings into a project

import datetime


print("🀲 Event Countdown 🀲")

event_name = input("\nEnter the Event name: ")
datee = int(input("Enter the date of the event :"))
monthe = int(input("Enter the month of the event :"))
yeare = int(input("Enter the year of the event :"))
eve_date = datetime.date(yeare, monthe, datee)

tod = datetime.date.today()

dif = (eve_date - tod).days

if tod == eve_date:
  print("\nGreat todat is " + event_name + " πŸ₯³πŸ₯³")
elif tod > eve_date:
  diftwo = (tod - eve_date).days
  print("\nπŸ˜­πŸ˜”πŸ˜₯ " + f"You missed {event_name} by {diftwo} days...")
elif tod < eve_date:
  print("\n☺️☺️😊😊 " + f"There is still {dif} days remaining " + "for  " + event_name)
else:
  None

Try it out, and don't forget to express your views in the comments...

Β