DEV Community

Lakshmi Pritha Nadesan
Lakshmi Pritha Nadesan

Posted on • Edited on

Day 10 - Looping

Write a program to calculate age:

from datetime import datetime dob = input("Enter your Date of Birth (yyyy-mm-dd): ") dob_date = datetime.strptime(dob, "%Y-%m-%d") print(dob_date) current_date = datetime.now() age = current_date.year - dob_date.year print(f"Your age is {age}") 
Enter fullscreen mode Exit fullscreen mode

datetime.now()-datetime.now() is a function in Python's datetime module that returns the current local date and time, including microseconds, as a datetime object.

strptime()-The strptime() method in Python is used to parse (convert) a string representing a date and/or time into a datetime object. It is part of the datetime module.

Enter your Date of Birth (yyyy-mm-dd): 1993-03-26 1993-03-26 00:00:00 Your age is 31 
Enter fullscreen mode Exit fullscreen mode

Another method:

If we have result in negative numbers, use this method

from datetime import date birth_year = 1993 birth_month = 3 birth_day = 26 today = date.today() year = today.year - birth_year month = today.month - birth_month days = today.day - birth_day if month<0: year = year - 1 month = 12+month if days<0: month=month-1 days = 30 + days print (f"You are {year} Years {month} Months {days} Days Old") 
Enter fullscreen mode Exit fullscreen mode
You are 31 Years 7 Months 29 Days Old 
Enter fullscreen mode Exit fullscreen mode

Alternate method using relativedelta:

from datetime import datetime from dateutil.relativedelta import relativedelta dob = input("Enter date of birth in yyyy-mm-dd format: ") dob_date = datetime.strptime(dob, "%Y-%m-%d") today = datetime.now() difference = relativedelta(today, dob_date) print(difference.years, " Years ", difference.months, " Months ", difference.days, " days") 
Enter fullscreen mode Exit fullscreen mode

relativedelta is a part of the dateutil module in Python, which provides more powerful operations for date and time manipulation than the standard library's timedelta. It allows you to perform operations like adding or subtracting months and years, which timedelta cannot handle directly.

Enter date of birth in yyyy-mm-dd format: 1993-03-26 31 Years 7 Months 30 days 
Enter fullscreen mode Exit fullscreen mode

Some Examples for while looping:

no = 1 while no<=5: print(no, end=' ') no+=1 
Enter fullscreen mode Exit fullscreen mode
1 1 1 1 1 
Enter fullscreen mode Exit fullscreen mode
no = 1 while no<=10: print(no, end=' ') no+=1 
Enter fullscreen mode Exit fullscreen mode
1 2 3 4 5 6 7 8 9 10 
Enter fullscreen mode Exit fullscreen mode
no = 10 while no>=1: print(no, end=' ') no-=1 
Enter fullscreen mode Exit fullscreen mode
10 9 8 7 6 5 4 3 2 1 
Enter fullscreen mode Exit fullscreen mode
no = 1 while no<=10: print(no, end=' ') no+=2 
Enter fullscreen mode Exit fullscreen mode
1 3 5 7 9 
Enter fullscreen mode Exit fullscreen mode
no=2 while no<=10: print(no, end=' ') no+=2 
Enter fullscreen mode Exit fullscreen mode
2 4 6 8 10 
Enter fullscreen mode Exit fullscreen mode
no = 3 while no<=10: print(no, end=' ') no+=3 
Enter fullscreen mode Exit fullscreen mode
3 6 9 
Enter fullscreen mode Exit fullscreen mode
no = 1 total = 0 while no<=5: total = total + no no+=1 print(total) 
Enter fullscreen mode Exit fullscreen mode
15 
Enter fullscreen mode Exit fullscreen mode
no = 1 while no<=5: print(no*3, end=' ') no+=1 
Enter fullscreen mode Exit fullscreen mode
3 6 9 12 15 
Enter fullscreen mode Exit fullscreen mode
no = 1 while no<=10: print(no,"*5=",no*5, end='\n') no+=1 
Enter fullscreen mode Exit fullscreen mode
1 *5= 5 2 *5= 10 3 *5= 15 4 *5= 20 5 *5= 25 6 *5= 30 7 *5= 35 8 *5= 40 9 *5= 45 10 *5= 50 
Enter fullscreen mode Exit fullscreen mode
no = 1 while no<=10: print(no, end = ' ') if no==9: no = 0 no+=2 
Enter fullscreen mode Exit fullscreen mode
1 3 5 7 9 2 4 6 8 10 
Enter fullscreen mode Exit fullscreen mode
num=1 while num<=5: print(num,end=" ") num+=1 num=5 while num>=1: print(num,end=" ") num-=1 
Enter fullscreen mode Exit fullscreen mode
1 2 3 4 5 5 4 3 2 1 
Enter fullscreen mode Exit fullscreen mode

Top comments (0)