放两个小轮子吧,欢迎测试bug,然后告诉我:

1、返回指定日期所在的一周

2,计算一个日期的月份和天数加减

# -*- coding: utf-8 -*-

"""

Created on Tue May 17 17:11:28 2016

@author: pcloth

关于日期的计算轮子

"""

import datetime,time,calendar

# 提交一个日期参数date(可以是字符串日期,也可以是datetime.date日期)

# 返回该日期所在的一周的日期list,从星期一到星期日

#

# 如:thisweek('2016-07-18')

# Out:

#[datetime.date(2016, 7, 18),

# datetime.date(2016, 7, 19),

# datetime.date(2016, 7, 20),

# datetime.date(2016, 7, 21),

# datetime.date(2016, 7, 22),

# datetime.date(2016, 7, 23),

# datetime.date(2016, 7, 24)]

def thisweek(date):

if type(date)==str:

try:

date_input = datetime.date.fromtimestamp(time.mktime(time.strptime(date,"%Y-%m-%d")))

except:

raise '参数错误:str格式的日期不合法,期待值格式:‘2016-01-01’'

elif type(date)==datetime.date:

date_input = date

else:

raise '参数错误:日期必须是datetime.date格式或者是str格式的合法日期比如‘2016-01-01’'

n = datetime.datetime.weekday(date_input)

weeklist = []

for i in range(7):

this_day=date_input + datetime.timedelta(0-n+i)

weeklist.append(this_day)

return weeklist

# 对一个datetime.date日期(或者str格式的日期)数据进行加减:

## add_months 是叠加的月数

# add_days 是叠加的天数

#

# 例如:date_add(datetime.date(2016,7,18),add_days=1)

# Out[65]: datetime.date(2016, 7, 19)

#

# date_add(datetime.date(2016,7,18),add_months=2,add_days=1)

# Out[66]: datetime.date(2016, 9, 19)

#

# 当然,参数也可以是负数:

# date_add('2016-01-01',add_months=-2,add_days=-1)

# Out[79]: datetime.date(2015, 10, 31)

#

#

def date_add(dt,add_months=0,add_days=0):

if type(dt)==str:

try:

dt = datetime.date.fromtimestamp(time.mktime(time.strptime(dt,"%Y-%m-%d")))

except:

raise '参数错误:日期必须是datetime.date格式或者是str格式的合法日期比如‘2016-01-01’'

month = dt.month + add_months

year = dt.year

if month>12:

year += int(month/12)

month = max(month%12,1)

elif month<0:

if abs(month)/12 > 0 and abs(month)/12 < 1:

year -= 1

month += 12

else:

year -= (int(abs(month)/12)+1)

month += (int(abs(month)/12)+1)*12

if month==0:

year -= 1

month = 12 - month

day = min(dt.day,calendar.monthrange(year,month)[1])

dt = dt.replace(year=year, month=month, day=day)

if add_days!=0:

dt = dt + datetime.timedelta(add_days)

return dt

python输入日期计算天数_用python计算日期(1、返回指定日期所在的一周,2,计算一个日期的月份和天数加减)...相关推荐

  1. python输入坐标求面积_利用python中的坐标计算多边形面积

    您没有正确实现Shoelace formula.我修改了一点你的代码来修复它:sum1=0.0 sum2=0.0 b=input("Number of corners: ") ma ...

  2. python输入生日判断星座_用python条件语句判断星座

    每当发生显著的重大天象时,天文学家.科普工作者和媒体总会在社会上,特别是年轻人之间掀起一股天文学热潮.为了方便研究及观测天上诸多恒星,人们把星空分为若干个区域,每一区就是一个星座.对于夜空爱好者来说, ...

  3. python输入生日输出生肖_用Python输入年月日 输出X年X月X日生肖是XX,xx岁的XX星座...

    # -*- coding: utf-8 -*- import datetime time1 = datetime.datetime.now().strftime('%Y') time2 = datet ...

  4. python输入汉字的代码_基于python的汉字转GBK码实现代码

    如图,"广"的编码为%B9%E3,暂且把%B9称为节编码,%E3为字符编码(第二编码). 思路: 从GBK编码页面收集汉字 http://ff.163.com/newflyff/g ...

  5. python输入字符串转换为公式_将python字符串转化成长表达式的函数eval实例

    爬一个网页时,要保存的数据都没有encode,就导致保存下来的中文都变成unicode了... 那么,怎么把一个表示字符串的unicode还原成unicode呢? 函数eval(expression) ...

  6. python输入二维数组_用Python生成二维数组的置换矩阵

    我想为一个输入d(一个素数)生成所有的平方置换矩阵.我知道在一般情况下,对于所有的排列都有这样的例子,但是我在寻找满足数学定义的置换矩阵 置换矩阵是根据数字1到d的某种排列将dxd恒等式矩阵的行进行排 ...

  7. python输入esc退出循环_使python在按ESC键时立即退出程序

    在正常输入下没有办法做到这一点.raw_input一次读取整行.在 在某些(极少数)情况下,您可以这样做:message = '' while True: ch = sys.stdin.read(1) ...

  8. python输入文字垂直输出_在python中如何将横向输入的中文竖直输出

    s.strip('.').split(',') 去掉最后的句号,然后以逗号为分隔符,把句子分开,存到一个list当中.执行完成后, lines=['白日依山尽', '黄河入海流', '欲穷千里目', ...

  9. python输入转化为数字_用Python罗马数字转换为阿拉伯数字的方法

    def getRomanNum(RomanStr): # 玩蛇网 www.iplaypy.com """Roman numerals will be converted ...

最新文章

  1. 微信小程序开发框架从入门到放弃
  2. [Vue] : 键盘修饰符
  3. linux vi 撤销重做于前进后退--转
  4. 使用反射操作Array类型
  5. KVM虚拟化实战精讲[第五章 利用virsh对虚拟机管理]
  6. 大数据Notebook调研信息汇总(持续更新中)
  7. Angular的工作原理
  8. js parseInt()和Number()区别
  9. 刷爆了!这份被程序员疯传的 Python 神作牛在哪?
  10. 2018年Android面试题整理
  11. 网络工程师/技术支持工程师面试题(1)
  12. VLAN间路由的配置(一)普通VLAN间路由的配置
  13. 3D编辑器-Web在线编辑基于WebGL/Threejs技术
  14. 部分古钱知识--(4)
  15. GPIF II designer使用说明+CYUSB3014芯片基本信息介绍——英文文档学习记录
  16. 【什么是Cookie、Session】
  17. 基于JAVA银创科技有限公司人事信息系统计算机毕业设计源码+系统+数据库+lw文档+部署
  18. Windows 11 预览版来了?
  19. 贪心问题(Python代码实现)——磁带最优存储问题
  20. 大学生用计算机,大学生计算机科学基础

热门文章

  1. 20周年献礼:Visual Studio 2017正式版3月7日发布
  2. .NET应用迁移到.NET Core(一)
  3. TagHelper是怎么实现的
  4. PHP开发中保证接口安全
  5. 【数据库原理及应用】经典题库附答案(14章全)——第二章:关系数据库知识
  6. C语言之rand()和srand()函数
  7. 贪心算法之最小堆实现霍夫曼编码
  8. 字符串常量到底存放在哪个存储区
  9. Android之开源框架NineOldAndroids动画库
  10. 我使用 html 反向输出自己打自己(7)