Date time operations in Python is performed using Python's built-in library datetime
.
from datetime import date
from datetime import datetime
today = date.today() # datetime.date(2019, 1, 28)
print(today) # 2019-01-28
print(today.day, today.month, today.year) # 28 1 2019
print(today.weekday()) # 0
today = datetime.now()
print(today) # 2019-01-28 18:35:27.562771
t = datetime.time(datetime.now())
print(t) # 18:35:27.563741
today.weekday()
returns an integers in the range 0 to 6, where 0 represents Monday and 6 represents Sunday.
This module is used to perform date and time calculations.
from datetime import datetime
from datetime import timedelta
print(timedelta(days=365, hours=5, minutes=1)) # 365 days, 5:01:00
today = datetime.now()
print(today + timedelta(days=60)) # 2019-03-29 18:41:46.720811
print(today - timedelta(days=57)) # 2018-12-02 18:42:36.774421
timedelta
object takes the following parameters: days, seconds, microseconds, milliseconds, minutes, hours, weeks.
To find past or future dates, simply use plus or minus sign with the required difference from current date.
Calendar related operations and displaying in formatted way.
import calendar
c = calendar.TextCalendar(calendar.MONDAY)
st = c.formatmonth(2017, 1, 0,0)
print(st)
hc = calendar.HTMLCalendar(calendar.MONDAY)
st = hc.formatmonth(2017, 1)
print(st)
#Output
'''
January 2017
Mo Tu We Th Fr Sa Su
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
<table border="0" cellpadding="0" cellspacing="0" class="month">
<tr><th colspan="7" class="month">January 2017</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday"> </td><td class="noday"> </td><td class="noday"> </td><td class="noday"> </td><td class="noday"> </td><td class="noday"> </td><td class="sun">1</td></tr>
<tr><td class="mon">2</td><td class="tue">3</td><td class="wed">4</td><td class="thu">5</td><td class="fri">6</td><td class="sat">7</td><td class="sun">8</td></tr>
<tr><td class="mon">9</td><td class="tue">10</td><td class="wed">11</td><td class="thu">12</td><td class="fri">13</td><td class="sat">14</td><td class="sun">15</td></tr>
<tr><td class="mon">16</td><td class="tue">17</td><td class="wed">18</td><td class="thu">19</td><td class="fri">20</td><td class="sat">21</td><td class="sun">22</td></tr>
<tr><td class="mon">23</td><td class="tue">24</td><td class="wed">25</td><td class="thu">26</td><td class="fri">27</td><td class="sat">28</td><td class="sun">29</td></tr>
<tr><td class="mon">30</td><td class="tue">31</td><td class="noday"> </td><td class="noday"> </td><td class="noday"> </td><td class="noday"> </td><td class="noday"> </td></tr>
</table>
'''
.HTMLCalendar
return HTML code for the calendar in table format. Calendar.SUNDAY
indicates that the first day
in the formatted calendar will be Sunday. In the above example, Calendar.MONDAY
is used. Hence, we can see in the
output that the first day in the representation is Monday.
import calendar
c = calendar.TextCalendar(calendar.MONDAY)
for i in c.itermonthdays(2017, 8):
print(i, end = ' ')
print('')
for name in calendar.month_name:
print(name, end = ' ')
print('')
for day in calendar.day_name:
print(day, end = ' ')
'''
Output:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 0 0
January February March April May June July August September October November December
Monday Tuesday Wednesday Thursday Friday Saturday Sunday
'''
Reference files: april_fool_day.py and team_meeting.py