zoukankan      html  css  js  c++  java
  • 一个日期类型接口参数的构造思路

    先说一下背景

    app上有一个功能是查询当前一周内产生的数据,对应的请求有2个必传参数:startDate 和 endDate

    其中 startDate 为当前一周的开始日期,如"周一 2019-12-02",endDate为当前一周的结束日期,如"周二 2019-12-08"

    所以这次要做的就是构造这两个参数

    一个简单的思考过程

    1、要获取到当前的日期

    2、知道当前日期对应星期几

    3、根据今天的日期倒推出星期一是几月几号

    4、根据周一是几月几号,再向未来延6天,就可以知道周日是几月几号

    通过上述3步即可获得“当前日期”所在周的 “周一对应几月几号,周日对应几月几号”

    一个简单的示意图如下:

    假如今天是:周四,12月5号,那么减3天,就是周一(4-3)

    假如今天是:周二,12月3号,那么减1天,就是周一(2-1)

    假如今天是:周一,12月2号,那么减0天,就是周一(1-0)

    编写python脚本

    python中的datetime模块可以获取日期以及星期

    # coding: utf-8
    # author: hmk
    
    import datetime
    
    today = datetime.datetime.now()  # 获取今天时间
    print("今天的日期是:{}".format(today.strftime("%Y-%m-%d")))
    
    t_week = today.weekday()
    print("今天是星期:{}".format(t_week))

    打印结果

     说明:在python中周一至周日分别对应0~6

    所以当前日期减去当前星期几对应的数值,就是周一的日期了,

    例如 今天是星期4,在python中对应的数值为3,星期4往前倒3天就是星期1了,也就是(4-3)

    所以需要构造一个变量,用来表示需要倒退的天数

    对应代码

    # coding: utf-8
    # author: hmk
    
    import datetime
    
    today = datetime.datetime.now()  # 获取今天时间
    print("今天的日期是:{}".format(today.strftime("%Y-%m-%d")))
    
    t_week = today.weekday()
    print("今天是星期:{}".format(t_week))
    offset = datetime.timedelta(days=t_week) # 定义一个变量,表示需要倒退的天数
    start = today-offset # 当前日期减去offset,表示周一对应的日期
    end = start+datetime.timedelta(days=6) # 周一的日期加上6天,表示周日的日期
    print(start.strftime("%Y-%m-%d")+"~"+end.strftime("%Y-%m-%d"))

    打印结果

    这样就构造好 startDate 和 endDate了

  • 相关阅读:
    ZOJ
    CodeForces
    模板
    前门
    错误记录
    2021/1/10例会 academy of management journal 2014vol 57 No.2,484-514
    Day7下
    Day7上
    Day6 下(
    Day6上 括号匹配专项
  • 原文地址:https://www.cnblogs.com/hanmk/p/11991590.html
Copyright © 2011-2022 走看看