Skip to main content

The Magic of Time.... , Unix Epoch , datetime , Asking For A Date , Getting Date Input , Delta Force , If Statements With Dates


The Magic of Time.... 

On day 60, 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 amount 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.

datetime

To use the Unix epoch, we first need to import the datetime library

import datetime

👉 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' 
 


Asking For A 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)


If Statements With Dates 

Provided you've formatted the date correctly, you can use the > == and < comparison operators just like you can with integers.

👉 I can use this to tell me if I should be on vacation or not! 

import datetime

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

holiday = datetime.date(year = 2022, month = 10, day = 30) # The date of my holiday

if holiday > today: # If my holiday is in the future
  print("Coming soon")
elif holiday < today: #If my holiday date has passed
  print("Hope you enjoyed it")
else: # If my holiday date is today
  print("HOLIDAY TIME!")





Comments

Popular posts from this blog

HTTP & Sessions

 HTTP & Sessions One of the main protocols (rules that govern how computers communicate) on the web is called HTTP. HTTP is what is known as a stateless protocol. This means that it doesn't 'remember' things. It's a bit like having a conversation with a goldfish. You can ask a question and get a reply, but when you ask a follow up question, the original has already been forgotten, as has who you are and what you were talking about. So if HTTP is stateless, how come my news site remembers to give me the weather for my home town, my preferred South American river based online store tells me when it's time to order more multivitamins, and I'm justifiably proud of my #100days success streak? The answer is......... Sessions Sessions are a way of storing files on your computer that allows a website to keep a record of previous 'conversations' and 'questions' you've asked. By using sessions, we can store this info about the user to access later....

Automate! Automate!

 Making this customizable 👉So how about making our search user customizable? In the code below, I have: Asked the user to input an artist (line 14) Tidied up their input (line 15) formatted the search URL as an fString that includes the artist (line 19) Here's tAutomate! Automate! We are so close. I can taste it, folks! Massive kudos on getting this far! Today's lesson, however, will work best if you have one of Replit's paid for features (hacker plan or cycles). Free plan Repls 'fall asleep' after a while. Automation kinda relies on the Repl being always on. If you have hacker plan or you've bought some cycles, then you can enable always on in the drop down menu that appears when you click your Repl name (top left).he code: This is important because when our repl is always running, it can keep track of time and schedule events. 👉 I've set up a simple schedule that prints out a clock emoji every couple of seconds. It works like this: Import schedule librar...

Web Scraping

 Web Scraping Some websites don't have lovely APIs for us to interface with. If we want data from these pages, we have to use a tecnique called scraping. This means downloading the whole webpage and poking at it until we can find the information we want. You're going to use scraping to get the top ten restaurants near you. Get started 👉 Go to a website like Yelp and search for the top 10 reastaurants in your location. Copy the URL.   url = "https://www.yelp.co.uk/search?find_desc=Restaurants&find_loc=San+Francisco%2C+CA%2C+United+States"   Import libraries 👉 Import your libraries. Beautiful soup is a specialist library for extracting the contents of HTML and helping us parse them. Run the Repl once your imports are sorted because we want the Beautiful Soup library to be installed (it'll run quicker this way). import requests from bs4 import BeautifulSoup url = "https://www.yelp.co.uk/search?find_desc=Restaurants&find_loc=San+Francisco%2C+CA%2C+Unite...