蓝桥杯时间相关题(python的datatime库)

引言

在蓝桥杯中几乎每年都会遇到与举办当天日期相关的题目,而python中有自带的时间库datatime库,这时就成了解题利器,要善于利用。

1、20年第十一届省赛C题:跑步锻炼

问题描述

小蓝每天都锻炼身体。
正常情况下,小蓝每天跑 1 千米。
如果某天是周一或者月初(1 日),为了激励自己,小蓝要跑2千米。如果同时是周一或月初,小蓝也是跑2千米。
小蓝跑步已经坚持了很长时间,从2000年1月1日周六(含)到2020年10月1日周四(含)。
请问这段时间小蓝总共跑步多少千米?

代码

import datetime
s = datetime.date(2000,1,1)
e = datetime.date(2020,10,1)
#一天(datetime类型)
d = datetime.timedelta(days=1)
res = 0
while s <= e:
	#月初或周一
    if s.day == 1 or s.weekday() == 0:
        res+=2
    else:
        res += 1
    #逐日判断
    s += d
print(res)
##result:8879

2、21年第十二届国赛C题:完全日期

问题描述

如果一个日期中年月日的各位数字之和是完全平方数,则称为一个完全日期。
例如: 2021年6月5日的各位数字之和为2+0+2+1+6+5= 16,而16是一个完全平方数,它是4的平方。所以2021年6月5日是一个完全日期。
例如: 2021年6月23日的各位数字之和为2+0+2+1+6+2+3= 16,是一个完全平方数。所以2021年6月23日也是一个完全日期。

请问,从2001年1月1日到2021年12月31日中,一共有多少个完全日期?

代码

from datetime import *
from math import *
a=date(2001,1,1)
b=date(2021,12,31)
gap=timedelta(days=1)
#求每个数位的和
def cul(n):
    summ=0
    nn=str(n)
    for i in nn:
        summ+=int(i)
    return summ
#判断是否为完全平方数
def judge(mm):
    x=sqrt(mm)
    y=int(sqrt(mm))
    if x==y:
        return 1
    return 0

ans=0
while a!=b:
    a=a+gap
    #获取年月日
    year=a.year
    month=a.month
    day=a.day
    #和
    summm=cul(year)+cul(month)+cul(day)
    if judge(summm):
        ans+=1
        print(a)
print(ans)
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 使用 datetime 很容易,你可以从 Python 的标准中导入它,然后你可以轻松访问当前时间日期时间段等功能。比如,要创建当前日期的实例,可以使用 datetime.date.today(),要获取当前时间的实例,可以使用 datetime.datetime.now()。 ### 回答2: 使用Pythondatatime可以处理日期时间相关的操作。下面是一些关于如何使用datatime的指导: 1. 首先,需要导入datatime:`import datetime` 2. 创建一个日期对象:`date_object = datetime.date(year, month, day)` 可以使用特定的年份、月份和日期来创建一个日期对象。例如:`date_object = datetime.date(2022, 3, 20)`。 3. 获取当前日期:`today = datetime.date.today()` 该方法返回当天的日期对象。例如:`today = datetime.date.today()`。 4. 创建一个时间对象:`time_object = datetime.time(hour, minute, second)` 可以使用特定的小时、分钟和秒来创建一个时间对象。例如:`time_object = datetime.time(12, 30, 15)`。 5. 获取当前时间:`current_time = datetime.datetime.now().time()` 使用now()方法来获取当前的日期时间对象,使用time()方法来获取当前的时间对象。例如:`current_time = datetime.datetime.now().time()`。 6. 创建一个日期时间对象:`datetime_object = datetime.datetime(year, month, day, hour, minute, second)` 可以使用特定的年份、月份、日期、小时、分钟和秒来创建一个日期时间对象。例如:`datetime_object = datetime.datetime(2022, 3, 20, 12, 30, 15)`。 7. 获取当前日期时间:`current_datetime = datetime.datetime.now()` 使用now()方法来获取当前的日期时间对象。例如:`current_datetime = datetime.datetime.now()`。 除了上述操作,datatime还提供了一些其他的功能,如日期时间的加减、比较等。你可以根据具体的需求,查阅datatime的官方文档来使用更多功能。 ### 回答3: 使用datetime可以获取当前日期时间,进行日期时间的计算和格式化,以及处理时区。 首先,需要导入datetime模块: ```python import datetime ``` 获取当前日期时间: ```python current_date = datetime.date.today() # 获取当前日期 current_time = datetime.datetime.now() # 获取当前日期时间 ``` 日期时间的计算: ```python date = datetime.date(year, month, day) # 创建日期对象 time = datetime.time(hour, minute, second) # 创建时间对象 # 日期时间的加减运算 new_date = date + datetime.timedelta(days=5) # 日期加5天 new_time = time + datetime.timedelta(hours=2) # 时间加2小时 ``` 日期时间的格式化: ```python formatted_date = date.strftime('%Y-%m-%d') # 将日期格式化为字符串 formatted_time = time.strftime('%H:%M:%S') # 将时间格式化为字符串 ``` 处理时区: ```python import pytz # 导入pytz模块 # 设置时区 timezone = pytz.timezone('Asia/Shanghai') current_time = datetime.datetime.now(timezone) # 转换时区 new_timezone = pytz.timezone('America/New_York') converted_time = current_time.astimezone(new_timezone) ``` 以上是datetime的基本用法,可以根据具体需求进行进一步的功能使用。datetime提供了丰富的方法和属性,可用于处理日期时间的各种操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值