实在受不了单双周了,写了个推算程序想往后推几周就推几周

例:

2020年10月19日——2020年10月25日:双

2020年10月26日——2020年11月 1日:单

...

# @File : run.py

import datetime

def dayms(leapyear_):

days = dict()

lis = [1, 3, 5, 7, 8, 10, 12]

for i in lis: days[i] = 31

lis = [4, 6, 9, 11]

for i in lis: days[i] = 30

days[2] = 29 if leapyear_ else 28

# return sorted(days.items(), key=lambda x: x[0])

return days

def leapyear(year_):

if (year_ % 4) == 0:

if (year_ % 100) == 0:

if (year_ % 400) == 0:

return True # 整百年能被400整除的是闰年

else:

return False # 整百年不能被400整除的不是闰年

else:

return True # 非整百年能被4整除的为闰年

else:

return False # 不能被4整除不是闰年

def mr(year_, month_, yearDic_):

if 1 <= month_ <= 12:

pass

else:

year_ += 1 if month_ > 12 else -1

month_ = 1 if month_ > 12 else 12

# 如果传值为13月(误)。则应该是一月

# 如果传值是0月,则只能由1月-1得到,为此应该是12月

yearDic_ = dayms(leapyear(year_))

# 从新计算是否是闰年

return year_, month_, yearDic_

def dr(year_, month_, day_, yearDic_):

if yearDic_[month_] < day_:

day_ -= yearDic_[month_]

year_, month_, yearDic_ = mr(year_, month_ + 1, yearDic_)

if day_ < 0:

year_, month_, yearDic_ = mr(year_, month_ - 1, yearDic_)

day_ += yearDic_[month_]

return year_, month_, day_, yearDic_

def ouy(yearDic_, year_, month_, day_, ds_, dayOfWeek):

k = int(input("往后推多少周:"))

year_, month_, day_, yearDic_ = dr(year_, month_, day_ - dayOfWeek, yearDic_)

for i in range(k):

year1, month1, day1, yearDic_ = \

dr(year_, month_, day_ + 1, yearDic_) # 下一周结束日

year_, month_, day_, yearDic_ = \

dr(year_, month_, day_ + 7, yearDic_) # 下一周起始日

print("{:4d}年{:2d}月{:2d}日——{:4d}年{:2d}月{:2d}日:{}" \

.format(year1, month1, day1, \

year_, month_, day_, \

ds_[i % 2]))

if __name__ == '__main__':

sl = input("以当前时间开始推算输入y,自定义时间输入s:")

s, dayOfWeek = 's', 0

if sl == 'y':

s = datetime.datetime.now().strftime('%Y-%m-%d') # 当前日期

elif sl == 's':

s = input("输入日期(y-m-d):")

year, month, day = s.split('-') # 分割字符串提取日期

ntime = datetime.datetime(int(year), int(month), int(day)) # 当前时间

dayOfWeek = ntime.isoweekday()

yearDic = dayms(leapyear(int(year)))

ds = input("当前是单周还是双周?(单和双二选一):")

ds = ['单', '双'] if ds == '单' else ['双', '单']

ouy(yearDic, int(year), int(month), int(day), ds, dayOfWeek)

'''

示例1输出:

以当前时间开始推算输入y,自定义时间输入s:s

输入日期(y-m-d):2020-1-3

当前是单周还是双周?(单和双二选一):双

往后推多少周:4

2019年12月30日——2020年 1月 5日:双

2020年 1月 6日——2020年 1月12日:单

2020年 1月13日——2020年 1月19日:双

2020年 1月20日——2020年 1月26日:单

示例2输出:

以当前时间开始推算输入y,自定义时间输入s:y

当前是单周还是双周?(单和双二选一):双

往后推多少周:4

2020年10月19日——2020年10月25日:双

2020年10月26日——2020年11月 1日:单

2020年11月 2日——2020年11月 8日:双

2020年11月 9日——2020年11月15日:单

'''

判断单双周java_单双周计算相关推荐

  1. 双代号网络图、双代号时标网络图、单代号网络图精讲

    请点击↑关注.收藏,本博客免费为你获取精彩知识分享!有惊喜哟!! 01 进度管理-普通双代号网络 1.识读.虚箭线 (1)网络图的识读:基本组成及逻辑关系: (2)补充虚箭线:共用一个班组.共用一台机 ...

  2. 坚果投影仪陷入双11刷单漩涡?良性发展才是硬道理!

    2018双11已经过去一周,高潮过后,潜在的问题开始逐渐浮出水面. 一方面,作为买家,是很多消费者买的实际货品与买之前看到的图片相差太大,买之前觉得是"貌美如花",到手试穿却是&q ...

  3. 单神经元PID控制+Simulink双闭环直流调速系统仿真

    前段时间学习了基于神经网络的智能控制,这周就把单神经元PID控制器应用于转速电流双闭环直流调速系统 双闭环直流调速系统的动态数学模型如下图所示: 外环为转速环,内环为电流环.本次转速调节器采用基于单神 ...

  4. 【GPS定位/导航/授时】单频GPS模块与双频GPS模块的区别有哪些?

    位置是物联网一个基础的.不可或缺的信息,更高精度的定位信息能够带来更高的效益和价值.关于位置服务,普通人最熟悉的应用莫过于导航.对于多数有车族而言,脱离导航可能寸步难行,而自动驾驶对定位精度提出更高要 ...

  5. python双引号和单引号区别_Python中单引号,双引号,3个单引号及3个双引号的区别...

    一.单引号和双引号 在Python中我们都知道单引号和双引号都可以用来表示一个字符串,比如 str1 = 'python' str2 = "python" str1和str2是没有 ...

  6. R语言使用latticeExtra包可视化双Y轴线图实战(Dual Y axis):单y轴线图、双y轴图线图、双y轴图线图(添加图例)

    R语言使用latticeExtra包可视化双Y轴线图实战(Dual Y axis):单y轴线图.双y轴图线图.双y轴图线图(添加图例) 目录

  7. javaweb火车车次信息管理+文件_厦门火车站启动“双十一”电商黄金周运输 投入列车数量为历年新高...

    为了应对"双十一"期间的快件高峰,厦门火车站也已经进入了备战"双十一"的状态.记者从厦门火车站了解到,从昨天11月1日开始,铁路启动"双十一" ...

  8. 单引号(')和双引号()

    关键是要养成良好的习惯. 单引号(')一般用在单字符,如=='c'. 双引号(")一般用在字符串,如"abc". 如果嵌套使用的话,一般用交替方法,尤其是html中. 如 ...

  9. python中3个单引号_Python中单引号,双引号,3个单引号及3个双引号的区别

    单引号和双引号 在Python中我们都知道单引号和双引号都可以用来表示一个字符串,比如 str1 = 'python'str2= "python" str1和str2是没有任何区别 ...

  10. RAC (双节点) + 单实例 DATAGUARD 安装遇到的问题处理

    RAC (双节点) + 单实例 DATAGUARD 安装遇到的问题处理 PRIMARY:  RAC 双节点 ,存储:ASM STANDBY: 单实例          存储: ASM 单实例  数据库 ...

最新文章

  1. shell命令之---Linux文件权限
  2. 到隔壁便利商店买东西,不要开车!
  3. Asp.Net 上传大文件专题(3)--从请求流中获取数据并保存为文件[下]
  4. Sqlserver 错误日志太大导致硬盘空间不足
  5. UEBA 学术界研究现状——用户行为异常检测思路:序列挖掘prefixspan,HMM,LSTM/CNN,SVM异常检测,聚类CURE算法...
  6. 量化延时法时间测量_「交易技术前沿」交易系统低延时测试与分析
  7. matlab 小技巧
  8. C语言20790内所有因子的和,长春市水污染控制指标的因子和聚类分析.pdf
  9. [转载] Java中的50个关键字
  10. 作者:廖小飞,博士,华中科技大学计算机科学与技术学院教授、博士生导师。...
  11. deepin开机未登录自动连接wifi
  12. remote Incorrect username or password ( access token ):用户名或密码不正确(访问令牌)
  13. 手把手教你强化学习 (八) 强化学习中的值函数近似算法
  14. [解决方案]SQLSTATE[HY000]: General error: 2006 MySQL server has gone away
  15. 官网下载JDK1.7的方法和步骤
  16. 微信公众号新的消息模板还能换行吗?
  17. android 坡度计算器,坡度换算角度计算器(坡度计算器)
  18. 德国:认真是一种可怕的力量
  19. JSP统计网站访问人数
  20. 图解SQL面试题:经典30题,数据分析人求职必考,强烈推荐收藏

热门文章

  1. 零基础CSS入门教程(30)–CSS布局实例
  2. vc调用任何第三方库的一般方法
  3. 【工控老马】MODBUS通讯协议及编程详解
  4. 注塑模具设计需要注意哪些要点?
  5. java生成短连接(调用新浪微博api生成)
  6. 关于ansys19.0安装问题
  7. 成功三大定律:荷花定律、金蝉定律、竹子定律
  8. android 添加蒙版实现护眼模式(夜间模式)
  9. 码头tsb_码头工人及其内部
  10. Validation进行参数校验