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...