仅需6道题轻松掌握Python时间和日期处理 | Python技能树征题

  • 0. 前言
  • 1. 第 1 题:时间单位转换
  • 2. 第 2 题:日期与时间运算
  • 3. 第 3 题:查找指定日期的后一个周日的日期
  • 4. 第 4 题:计算指定月份的日期范围
  • 5. 第 5 题:将字符串转换为日期
  • 6. 第 6 题:与时区相关的时间问题
  • 试题代码地址

0. 前言

时间和日期处理,是许多应用程序中绕不开的问题,例如日期与时间的转换、判断给定日期是周期等等问题,为了方便的处理上述问题,Python 中内建的许多标准库(例如 timedatetime 等)进行相关处理,接下来我们就通过 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) % 7target_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) / 7if days_ago == 0:days_ago = 7target_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) // 7if days_ago == 0:days_ago = 7target_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) % 7if days_ago == 0:days_ago = 7target_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

仅需6道题轻松掌握Python时间和日期处理 | Python技能树征题相关推荐

  1. 仅需10道题轻松掌握Python文件处理 | Python技能树征题

    仅需10道题轻松掌握Python文件处理 | Python技能树征题 0. 前言 1. 第 1 题:文件路径名的处理 2. 第 2 题:检测文件是否存在 3. 第 3 题:获取指定文件夹下的文件列表 ...

  2. 仅需5道题轻松掌握Python命令行相关标准库 | Python技能树征题

    仅需5道题轻松掌握Python命令行相关标准库 | Python技能树征题 0. 前言 1. 第 1 题:命令行日志记录 2. 第 2 题:将日志存储在磁盘上 3. 第 3 题:命令行参数解析 4. ...

  3. 仅需6道题轻松掌握SciPy空间计算基础 | Python技能树征题

    仅需6道题轻松掌握SciPy空间计算基础 | Python技能树征题 0. 前言 1. 第 1 题:三角剖分 2. 第 2 题:凸包 3. 第 3 题:K-D树 4. 第 4 题:曼哈顿距离 5. 第 ...

  4. 仅需6道题轻松掌握Python异常捕获 | Python技能树征题

    仅需6道题轻松掌握Python异常捕获 | Python技能树征题 0. 前言 1. 第 1 题:在单元测试中测试异常 2. 第 2 题:多个异常的处理 3. 第 3 题:捕获所有异常 4. 第 4 ...

  5. 仅需8道题轻松掌握Python Web应用开发 | Python技能树征题

    仅需9道题轻松掌握Python Web应用开发 | Python技能树征题 0. 前言 1. 第 1 题:客户端访问 Web 服务器 2. 第 2 题:构建 TCP 服务器 3. 第 3 题:构建 U ...

  6. 仅需10道题轻松掌握Python字符串方法 | Python技能树征题

    仅需10道题轻松掌握Python字符串方法 | Python技能树征题 0. 前言 1. 第 1 题:字符串检查 2. 第 2 题:字符串大小写转换 3. 第 3 题:字符串开头或结尾匹配 4. 第 ...

  7. Python时间与日期操作(datetime、time、calendar)

    转载自:Python时间与日期操作(datetime.time.calendar) - 阳光宝贝-沐沐 - 博客园 相关模块 模块 说明 time time是一个仅包含与日期和时间相关的函数和常量的模 ...

  8. SciPy 积分 | Python技能树征题

    SciPy 积分 | Python技能树征题 0. 前言 1. 第 1 题:具有函数表达式的被积函数求积分 2. 第 2 题:函数表达式未知的积分求解 试题代码地址 0. 前言 积分在科学和工程应用中 ...

  9. SciPy 非线性方程求解 | Python技能树征题

    SciPy 非线性方程求解 | Python技能树征题 0. 前言 1. 第 1 题:一元非线性方程求解 2. 第 2 题:非线性方程组求解 试题代码地址 0. 前言 在自然科学和工程学科中,许多系统 ...

最新文章

  1. 这么简单的目标检测赛题,竟然设置260万现金奖!
  2. 「干货」小程序风头正劲,传统商家该如何把握机会抢占红利?
  3. 测试信标灯的随机特性
  4. python编程工资-2019年Python就业薪资怎么样?看完你就了解了
  5. python单词大全-学Python必须背的42个常见单词
  6. 给一个Table添加合计行[Tips]
  7. 在虚拟机上安装XP系统
  8. linux下挂载ntfs(windows)文件系统
  9. 计算机操作系统(4):操作系统的重要功能
  10. 多进程event通信
  11. LeetCode Binary Tree PostorderTranversal
  12. 8种寻找机器学习数据集的方法 | 附数据集资源
  13. python 输出函数表达式——LaTeX数学公式
  14. requirejs教程(一):基本用法
  15. Arcpy基础入门-1、如何使用arcpy
  16. Android通过webservice连接SQLServer 详细教程(数据库+服务器+客户端)
  17. Excel笔记(1) Excel常用基础功能
  18. 【火灾疏散建模】基于MATLAB的火灾人员疏散建模编程和仿真分析
  19. C#读取xml节点数据方法小结
  20. Android状态栏添加快捷开关(Tile)

热门文章

  1. 【Java每日一题】20161228
  2. html5---资料查询
  3. Django之中间件,csrf跨站伪造请求,auth认证模块
  4. Navicat的使用,连表查询,python代码操作sql语句
  5. python基础7--socket
  6. POJ 2457 BFS
  7. XE7 Unit scope names
  8. DevExpress XtraGrid网格控件示例四:初始化新建行的单元格
  9. 每天一个linux命令(60):scp命令
  10. (九)OpenCV Canny边缘检测