python时间计算小结

1.计算天数

import time
import datetime

t1='2020-02-24 16:08:42'
t2='2020-02-24 18:48:53'

d1=datetime.datetime.strptime(t1,'%Y-%m-%d %H:%M:%S')
d2=datetime.datetime.strptime(t2,'%Y-%m-%d %H:%M:%S')
delta=d2-d1
print(delta.days)

2.比较时间大小

import time
t1='2020-02-24 16:08:42'
t2='2020-02-24 18:48:53'
s1=time.strptime(t1,'%Y-%m-%d %H:%M:%S')
s2=time.strptime(t2,'%Y-%m-%d %H:%M:%S')
timeStamp1 = int(time.mktime(s1))
timeStamp2 = int(time.mktime(s2))
print(timeStamp1,timeStamp2)
print(timeStamp2-timeStamp1)

3.判定给定日期是否在今天之内

current_time=time.time()
c=time.localtime(current_time)
str_day=time.strftime("%Y-%m-%d %H:%M:%S", c)
# print(str_day.split(' '))
begin_today=str_day.split(' ')[0]+' 00:00:00'
print(begin_today)

begin_time=time.mktime(time.strptime(begin_today,'%Y-%m-%d %H:%M:%S'))
tar_time=time.mktime(time.strptime(t2,'%Y-%m-%d %H:%M:%S'))
if current_time>tar_time and tar_time>begin_time:
    print(True)
else:
    print(False)

4.计算本周、上周起始与结束日期

now = datetime.datetime.now()
def get_current_week():
    """
    返回当前时间的上一周的开始和结束时间
    """
    this_week_start = now - datetime.timedelta(days=now.weekday())
    this_week_end = now + datetime.timedelta(days=6 - now.weekday())

    return this_week_start.strftime("%Y-%m-%d"), this_week_end.strftime("%Y-%m-%d")

def get_last_week():
    """
    获取上周起始与结束日期
    :return: 
    """
    last_week_start = now - datetime.timedelta(days=now.weekday() + 7)
    last_week_end = now - datetime.timedelta(days=now.weekday() + 1)

    return last_week_start.strftime("%Y-%m-%d"),last_week_end.strftime("%Y-%m-%d")

5.计算本月起始与结束日期

def get_current_month():
    """
    计算本月起始与结束日期
    :return: 
    """
    this_month_start = datetime.datetime(now.year, now.month, 1)
    this_month_end = datetime.datetime(now.year, now.month + 1, 1) - datetime.timedelta(days=1) + datetime.timedelta(
        hours=23, minutes=59, seconds=59)

    return this_month_start.strftime("%Y-%m-%d"),this_month_end.strftime("%Y-%m-%d")

6.计算上月起始与结束日期

def get_last_month():
 """
 计算上月起始与结束日期
 :return:
 """
 this_month_start = datetime.datetime(now.year, now.month, 1)
 last_month_end = this_month_start - datetime.timedelta(days=1) + datetime.timedelta(
     hours=23, minutes=59, seconds=59)
 last_month_start = datetime.datetime(last_month_end.year, last_month_end.month, 1)

 return last_month_start.strftime("%Y-%m-%d"),last_month_end.strftime("%Y-%m-%d")

**7.计算下月起始与结束日期**
```python
    def get_next_month():
     """
     计算下月起始与结束日期
     :return:
     """
     now = datetime.datetime.now()
     next_month = now.month + 1
     year = now.year
     
     if now.month == 12:
         next_month = 1
         
     if now.month + 2 >= 13:
         next_month = 1
         year += 1

     next_month_start = datetime.datetime(year, next_month, 1)

     next_month_end = datetime.datetime(year, next_month+1, 1) - datetime.timedelta(
         days=1) + datetime.timedelta(
         hours=23, minutes=59, seconds=59)

     return next_month_start.strftime("%Y-%m-%d"), next_month_end.strftime("%Y-%m-%d")

8.获取两个日期之间的所有日期列表

    def getEveryDay(start_date, end_date):
     date_list = []
     start = datetime.datetime.strptime(start_date, "%Y-%m-%d")
     end = datetime.datetime.strptime(end_date, "%Y-%m-%d")
     while start <= end:
         date_str = start.strftime("%Y-%m-%d")
         date_list.append(date_str)
         start += datetime.timedelta(days=1)
     return date_list

9.判定给定日期是否为周末

import datetime

def getWeekday(date):
    date_list=[int(s) for s in date.split('-')]
    weekday=datetime.datetime(*date_list).strftime("%w")   #参数需要为整型
    return weekday

w=getWeekday('2020-11-01')
print(w)  #0  周日为0,注意是字符串类型
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值