僅需6道題輕松掌握Python時間和日期處理 | Python技能樹征題
- 0.前言
- 1. 第 1 題:時間單位轉換
- 2. 第 2 題:日期與時間運算
- 3. 第 3 題:查找指定日期的后一個周日的日期
- 4. 第 4 題:計算指定月份的日期范圍
- 5. 第 5 題:將字串轉換為日期
- 6. 第 6 題:與時區相關的時間問題
- 試題代碼地址
0.前言
時間和日期處理,是許多應用程式中繞不開的問題,例如日期與時間的轉換、判斷給定日期是周期等等問題,為了方便的處理上述問題,Python 中內建的許多標準庫(例如 time、datetime 等)進行相關處理,接下來我們就通過 5 道編程題來掌握這些處理時間和日期的方法吧!
1. 第 1 題:時間單位轉換
知識點描述:時間轉換,比如天到秒,小時到分鐘等的轉換,
問題描述:請從以下選項中選出能夠將 3 天 6 小時 30 分 轉化為秒的程式:
A.
from datetime import timedelta
days = 3
hours = 6
minutes = 30
result = timedelta(days=days, hours=hours, minutes=minutes).seconds
print(result)
B.
from datetime import timedelta
days = 3
hours = 6
minutes = 30
result = timedelta(days=days, hours=hours, minutes=minutes).total_seconds
print(result)
C.
from datetime import timedelta
days = 3
hours = 6
minutes = 30
result = timedelta(days=days, hours=hours, minutes=minutes).microseconds
print(result)
D.
from datetime import timedelta
days = 3
hours = 6
minutes = 30
result = timedelta(days=days, hours=hours, minutes=minutes).microseconds / 1000
print(result)
正確答案: A
2. 第 2 題:日期與時間運算
知識點描述:日期和時間處理問題,
問題描述:請從以下選項中選出能夠計算日期間相隔天數的答案:
A.
from datetime import datetime
day_1 = datetime(2018,1,1)
day_2 = datetime(2021,10,4)
result = (day_1 - day_2).days
print(result)
B.
from datetime import datetime
day_1 = datetime(2018,1,1)
day_2 = datetime(2021,10,4)
result = (day_2 - day_1).days
print(result)
C.
from datetime import datetime
day_1 = datetime(2018,1,1)
day_2 = datetime(2021,10,4)
result = day_1 - day_2
print(result)
D.
from datetime import datetime
day_1 = datetime(2018,1,1)
day_2 = datetime(2021,10,4)
result = day_2 - day_1
print(result)
正確答案: B
3. 第 3 題:查找指定日期的后一個周日的日期
知識點描述:查找指定日期下一次星期日期出現的日期,比如 2021 年 10 月 3 日 的下一個星期日,
問題描述:計算 2021 年 10 月 3 日后一個星期日的日期,請從以下選項中選出你認為正確的答案:
A.
from datetime import datetime, timedelta
date = datetime(2021, 10, 3)
weekdays = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
def get_day(dayname, date):
day_num = date.weekday()
day_num_target = weekdays.index(dayname)
days_ago = (7 + day_num - day_num_target) % 7
target_date = date + timedelta(days_ago)
return target_date
result = get_day('Sunday', date)
print(result)
B.
from datetime import datetime, timedelta
date = datetime(2021, 10, 3)
weekdays = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
def get_day(dayname, date):
day_num = date.weekday()
day_num_target = weekdays.index(dayname)
days_ago = (7 + day_num - day_num_target) / 7
if days_ago == 0:
days_ago = 7
target_date = date + timedelta(days_ago)
return target_date
result = get_day('Sunday', date)
print(result)
C.
from datetime import datetime, timedelta
date = datetime(2021, 10, 3)
weekdays = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
def get_day(dayname, date):
day_num = date.weekday()
day_num_target = weekdays.index(dayname)
days_ago = (7 + day_num - day_num_target) // 7
if days_ago == 0:
days_ago = 7
target_date = date + timedelta(days_ago)
return target_date
result = get_day('Sunday', date)
print(result)
D.
from datetime import datetime, timedelta
date = datetime(2021, 10, 3)
weekdays = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
def get_day(dayname, date):
day_num = date.weekday()
day_num_target = weekdays.index(dayname)
days_ago = (7 + day_num - day_num_target) % 7
if days_ago == 0:
days_ago = 7
target_date = date + timedelta(days_ago)
return target_date
result = get_day('Sunday', date)
print(result)
正確答案: D
4. 第 4 題:計算指定月份的日期范圍
知識點描述:計算指定月份的日期范圍,列印指定月份中所有日期,
問題描述:請從以下選項中選出可以列印出 2021年 10 月份所有日期(日期格式示例如下:2021-10-01)的答案:
A.
from datetime import datetime, date, timedelta
import calendar
def print_month_range(year, month):
start_date = datetime(year, month, 1)
_, days_in_date = calendar.monthrange(start_date.year, start_date.month)
for i in range(days_in_date):
print(start_date)
start_date += timedelta(days=i)
print_month_range(2021, 10)
B.
from datetime import datetime, date, timedelta
import calendar
def print_month_range(year, month):
start_date = datetime(year, month, 1)
_, days_in_date = calendar.monthrange(start_date.year, start_date.month)
for i in range(days_in_date):
next_date = start_date + timedelta(days=i)
print(next_date)
print_month_range(2021, 10)
C.
from datetime import datetime, date, timedelta
import calendar
def print_month_range(year, month):
start_date = datetime(year, month, 1)
_, days_in_date = calendar.monthrange(start_date.year, start_date.month)
for i in range(days_in_date):
next_date = start_date + timedelta(days=i)
print(next_date.date())
print_month_range(2021, 10)
D.
from datetime import datetime, date, timedelta
import calendar
def print_month_range(year, month):
start_date = datetime(year, month, 1)
_, days_in_date = calendar.monthrange(start_date.year, start_date.month)
for i in range(days_in_date+1):
next_date = start_date + timedelta(days=i)
print(next_date.date())
print_month_range(2021, 10)
正確答案: C
5. 第 5 題:將字串轉換為日期
知識點描述:將字串轉變為 datetime 物件,以便進行日期操作,
問題描述:請從以下選項中選出能夠正確將字串 “2021-10-03” 轉變為 datetime 物件的程式:
A.
from datetime import datetime
def string_to_datetime(string):
date_obj = datetime.strptime(string, '%Y%m%d')
return date_obj
string = '2021-10-03'
result = string_to_datetime(string)
print(result)
B.
from datetime import datetime
def string_to_datetime(string):
date_obj = datetime.strptime(string, '%Y %m %d')
return date_obj
string = '2021-10-03'
result = string_to_datetime(string)
print(result)
C.
from datetime import datetime
def string_to_datetime(string):
date_obj = datetime.strptime(string, '%Y-%M-%D')
return date_obj
string = '2021-10-03'
result = string_to_datetime(string)
print(result)
D.
from datetime import datetime
def string_to_datetime(string):
date_obj = datetime.strptime(string, '%Y-%m-%d')
return date_obj
string = '2021-10-03'
result = string_to_datetime(string)
print(result)
正確答案: D
6. 第 6 題:與時區相關的時間問題
知識點描述:時區間的相互轉換,
問題描述:2019 年 4 月 29 日上午 9 時,2019 北京世界園藝博覽會開園,請問以下哪個程式可以正確計算博覽會開園時芝加哥時間:
A.
from datetime import datetime
from pytz import timezone
beijing = datetime(2019, 4, 29, 9, 0)
central = timezone('Asia/Shanghai')
loc_date = central.localize(beijing)
target_date = loc_date.astimezone(timezone('US/Central'))
print(target_date)
B.
from datetime import datetime
from pytz import timezone
beijing = datetime(2019, 4, 29, 9, 0)
central = timezone('Asia/Shanghai')
loc_date = central.localize(beijing)
target_date = timezone('US/Central')
print(target_date)
C.
from datetime import datetime
from pytz import timezone
beijing = datetime(2019, 4, 29, 9, 0)
central = timezone('Asia/Shanghai')
loc_date = central.localize(beijing)
target_date = central + loc_date.astimezone(timezone('US/Central'))
print(target_date)
D.
from datetime import datetime
from pytz import timezone
beijing = datetime(2019, 4, 29, 9, 0)
central = timezone('Asia/Shanghai')
loc_date = central.localize(beijing)
target_date = loc_date.astimezone(central)
print(target_date)
正確答案:A
試題代碼地址
https://codechina.csdn.net/LOVEmy134611/python_problem
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/305696.html
標籤:python
