In this example, the Python datetime
module is used to calculate and output the number of days and years of a birth date.
import datetime
def calculateAge(birthday):
(d, m, y) = birthday.split('.')
return d, m, y
birthday = str(
input("Please enter your birthday in following format dd.mm.yyyy: "))
today = datetime.datetime.now()
splittedDate = calculateAge(birthday)
birthdayDate = datetime.datetime(
int(splittedDate[2]), int(splittedDate[1]), int(splittedDate[0]))
age = (today - birthdayDate).days
print(repr(age) + " days old")
print(repr(int(age/365)) + " years old")
The script begins by importing the datetime
module, which provides various functions and classes to manipulate dates and times.
calculateAge(birthday)
: This function is designed to take a birthday string in the format “dd.mm.yyyy” and split it into day, month, and year. The split result is a tuple containing day (d), month (m), and year (y), extracted from the birthday string using the split('.')
method.birthday
: This variable collects the user’s birthday via input, prompting them to enter their birth date in the format “dd.mm.yyyy”. This input is then passed as a string to further processing functions.today
: This variable is assigned the current date and time up to the microsecond using datetime.datetime.now()
. This provides the reference point from which the age will be calculated.splittedDate
: This variable stores the tuple returned by calculateAge(birthday)
, which contains the birthday split into day, month, and year.birthdayDate
: This datetime object is constructed using the year, month, and day extracted from splittedDate
. The values are converted to integers to match the expected data types for creating a datetime object.age
: The age in days is calculated by subtracting birthdayDate
from today
and extracting the .days
attribute from the resulting timedelta object.print(repr(age) + " days old")
: This prints the age in days by converting age
(which is an integer) to its string representation using repr()
.print(repr(int(age/365)) + " years old")
: This calculates the approximate age in years by dividing the age in days by 365 and then prints it. The division result is converted to an integer for a clean whole number representation of years.Please enter your birthday in following format dd.mm.yyyy: 10.01.1993
10925 days old
29 years old