Python根据指定日期获取周的信息

本文提供了一系列关于日期操作的Python脚本,包括获取指定日期所在周的所有日期、获取指定日期的周信息及其所在年份的周数、以及获取当前时间的前一天、前一周和前一个月的具体时间段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、获取指定日期所在的周的每一天
/Users/nisj/PycharmProjects/EsDataProc/bi-static/calc_day_in_week.py
# -*- coding=utf-8 -*-
import datetime

def week_get(vdate):
    dayscount = datetime.timedelta(days=vdate.isoweekday())
    dayfrom = vdate - dayscount + datetime.timedelta(days=1)
    dayto = vdate - dayscount + datetime.timedelta(days=7)
    print ' ~~ '.join([str(dayfrom), str(dayto)])
    week7 = []
    i = 0
    while (i <= 6):
        week7.append('周'+str(i+1)+': '+str(dayfrom + datetime.timedelta(days=i)))
        i += 1
    return week7

if __name__ == '__main__':
    vdate_str = '2017-01-09'
    vdate = datetime.datetime.strptime(vdate_str, '%Y-%m-%d').date()

    for week in week_get(vdate):
        print week

2、获取指定日期所在的周及周的每一天
/Users/nisj/PycharmProjects/EsDataProc/bi-static/calc_day_in_weekYear.py
# -*- coding=utf-8 -*-
import datetime

def week_get(vdate):
    dayscount = datetime.timedelta(days=vdate.isoweekday())
    dayfrom = vdate - dayscount + datetime.timedelta(days=1)
    dayto = vdate - dayscount + datetime.timedelta(days=7)
    print ' ~~ '.join([str(dayfrom), str(dayto)])
    week7 = []
    i = 0
    while (i <= 6):
        week7.append('周'+str(i+1)+': '+str(dayfrom + datetime.timedelta(days=i)))
        i += 1
    return week7

def weekInYear(vdate_str):
    date = vdate_str
    yearWeek = datetime.date(int(date[0:4]), int(date[5:7]), int(date[8:10])).isocalendar()[0:2]
    return str(yearWeek[0])+'#'+str(yearWeek[1])

if __name__ == '__main__':
    vdate_str = '2017-01-20'
    vdate = datetime.datetime.strptime(vdate_str, '%Y-%m-%d').date()

    for week in week_get(vdate):
        for weekYear in (weekInYear(vdate_str).split()):
            print weekYear,week



3、获取当前时间的前一天,前一周,前一个月
/Users/nisj/PycharmProjects/EsDataProc/bi-static/calc_dayInDayWeekMonth.py
import datetime

def day_get(d):
    oneday = datetime.timedelta(days=1)
    day = d - oneday
    date_from = datetime.datetime(day.year, day.month, day.day, 0, 0, 0)
    date_to = datetime.datetime(day.year, day.month, day.day, 23, 59, 59)
    print '---'.join([str(date_from), str(date_to)])


def week_get(d):
    dayscount = datetime.timedelta(days=d.isoweekday())
    dayto = d - dayscount
    sixdays = datetime.timedelta(days=6)
    dayfrom = dayto - sixdays
    date_from = datetime.datetime(dayfrom.year, dayfrom.month, dayfrom.day, 0, 0, 0)
    date_to = datetime.datetime(dayto.year, dayto.month, dayto.day, 23, 59, 59)
    print '---'.join([str(date_from), str(date_to)])


def month_get(d):
    dayscount = datetime.timedelta(days=d.day)
    dayto = d - dayscount
    date_from = datetime.datetime(dayto.year, dayto.month, 1, 0, 0, 0)
    date_to = datetime.datetime(dayto.year, dayto.month, dayto.day, 23, 59, 59)
    print '---'.join([str(date_from), str(date_to)])


if __name__ == '__main__':
    d = datetime.datetime.now()
    day_get(d)
    week_get(d)
    month_get(d)


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值