python 日期操作类代码


Posted in Python onMay 05, 2018

完整代码

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

'''获取当前日期前后N天或N月的日期'''

from time import strftime, localtime
from datetime import timedelta, date
import calendar

year = strftime("%Y",localtime())
mon = strftime("%m",localtime())
day = strftime("%d",localtime())
hour = strftime("%H",localtime())
min = strftime("%M",localtime())
sec = strftime("%S",localtime())

def today():
 '''''
 get today,date format="YYYY-MM-DD"
 '''''
 return date.today()

def todaystr():
 '''
 get date string, date format="YYYYMMDD"
 '''
 return year+mon+day

def datetime():
 '''''
 get datetime,format="YYYY-MM-DD HH:MM:SS"
 '''
 return strftime("%Y-%m-%d %H:%M:%S",localtime())

def datetimestr():
 '''''
 get datetime string
 date format="YYYYMMDDHHMMSS"
 '''
 return year+mon+day+hour+min+sec

def get_day_of_day(n=0):
 '''''
 if n>=0,date is larger than today
 if n<0,date is less than today
 date format = "YYYY-MM-DD"
 '''
 if(n<0):
  n = abs(n)
  return date.today()-timedelta(days=n)
 else:
  return date.today()+timedelta(days=n)

def get_days_of_month(year,mon): 
 ''''' 
 get days of month 
 ''' 
 return calendar.monthrange(year, mon)[1] 
 
def get_firstday_of_month(year,mon): 
 ''''' 
 get the first day of month 
 date format = "YYYY-MM-DD" 
 ''' 
 days="01" 
 if(int(mon)<10): 
  mon = "0"+str(int(mon)) 
 arr = (year,mon,days) 
 return "-".join("%s" %i for i in arr) 
 
def get_lastday_of_month(year,mon): 
 ''''' 
 get the last day of month 
 date format = "YYYY-MM-DD" 
 ''' 
 days=calendar.monthrange(year, mon)[1] 
 mon = addzero(mon) 
 arr = (year,mon,days) 
 return "-".join("%s" %i for i in arr) 
 
def get_firstday_month(n=0): 
 ''''' 
 get the first day of month from today 
 n is how many months 
 ''' 
 (y,m,d) = getyearandmonth(n) 
 d = "01" 
 arr = (y,m,d) 
 return "-".join("%s" %i for i in arr) 
 
def get_lastday_month(n=0): 
 ''''' 
 get the last day of month from today 
 n is how many months 
 ''' 
 return "-".join("%s" %i for i in getyearandmonth(n)) 
 
def getyearandmonth(n=0): 
 ''''' 
 get the year,month,days from today 
 befor or after n months 
 ''' 
 thisyear = int(year) 
 thismon = int(mon) 
 totalmon = thismon+n 
 if(n>=0): 
  if(totalmon<=12): 
   days = str(get_days_of_month(thisyear,totalmon)) 
   totalmon = addzero(totalmon) 
   return (year,totalmon,days) 
  else: 
   i = totalmon/12 
   j = totalmon%12 
   if(j==0): 
    i-=1 
    j=12 
   thisyear += i 
   days = str(get_days_of_month(thisyear,j)) 
   j = addzero(j) 
   return (str(thisyear),str(j),days) 
 else: 
  if((totalmon>0) and (totalmon<12)): 
   days = str(get_days_of_month(thisyear,totalmon)) 
   totalmon = addzero(totalmon) 
   return (year,totalmon,days) 
  else: 
   i = totalmon/12 
   j = totalmon%12 
   if(j==0): 
    i-=1 
    j=12 
   thisyear +=i 
   days = str(get_days_of_month(thisyear,j)) 
   j = addzero(j) 
   return (str(thisyear),str(j),days) 
 
def addzero(n): 
 ''''' 
 add 0 before 0-9 
 return 01-09 
 ''' 
 nabs = abs(int(n)) 
 if(nabs<10): 
  return "0"+str(nabs) 
 else: 
  return nabs 

def get_today_month(n=0): 
 ''''' 
 获取当前日期前后N月的日期
 if n>0, 获取当前日期前N月的日期
 if n<0, 获取当前日期后N月的日期
 date format = "YYYY-MM-DD" 
 ''' 
 (y,m,d) = getyearandmonth(n) 
 arr=(y,m,d) 
 if(int(day)<int(d)): 
  arr = (y,m,day) 
 return "-".join("%s" %i for i in arr) 
 

if __name__=="__main__":
 print today() 
 print todaystr()
 print datetime()
 print datetimestr()
 print get_day_of_day(20)
 print get_day_of_day(-3)
 print get_today_month(-3)
 print get_today_month(3)

这篇关于python 日期操作类的文章就介绍到这,里面涉及了python日期操作的一些基础知识。

Python 相关文章推荐
详解python中字典的循环遍历的两种方式
Feb 07 Python
matplotlib绘图实例演示标记路径
Jan 23 Python
python学习基础之循环import及import过程
Apr 22 Python
Python内存管理实例分析
Jul 10 Python
详解Python3迁移接口变化采坑记
Oct 11 Python
Python读取JSON数据操作实例解析
May 18 Python
Python无损压缩图片的示例代码
Aug 06 Python
ubuntu16.04升级Python3.5到Python3.7的方法步骤
Aug 20 Python
PyQT5速成教程之Qt Designer介绍与入门
Nov 02 Python
Python命令行参数argv和argparse该如何使用
Feb 08 Python
python基础之类属性和实例属性
Oct 24 Python
python数据可视化使用pyfinance分析证券收益示例详解
Nov 20 Python
Python批量发送post请求的实现代码
May 05 #Python
PyQt5 pyqt多线程操作入门
May 05 #Python
详解pyqt5 动画在QThread线程中无法运行问题
May 05 #Python
python中in在list和dict中查找效率的对比分析
May 04 #Python
Django如何配置mysql数据库
May 04 #Python
Python实现求一个集合所有子集的示例
May 04 #Python
python list是否包含另一个list所有元素的实例
May 04 #Python
You might like
PHP设计模式之模板方法模式定义与用法详解
2018/04/02 PHP
JavaScript Array Flatten 与递归使用介绍
2011/10/30 Javascript
js实现页面跳转重定向的几种方式
2014/05/29 Javascript
javascript实现复选框超过限制即弹出警告框的方法
2015/02/25 Javascript
jQuery插件jRumble实现网页元素抖动
2015/06/05 Javascript
有关JavaScript中call()和apply() 的一些理解
2016/05/20 Javascript
JavaScript实现in-place思想的快速排序方法
2016/08/07 Javascript
JS提示:Uncaught SyntaxError:Unexpected token ) 错误的解决方法
2016/08/19 Javascript
Node.js connect ECONNREFUSED错误解决办法
2016/09/15 Javascript
JavaScript“尽快失败”的原则实例详解
2016/10/08 Javascript
微信小程序 火车票查询实例讲解
2016/10/17 Javascript
html、css和jquery相结合实现简单的进度条效果实例代码
2016/10/24 Javascript
Node.js与Sails redis组件的使用教程
2017/02/14 Javascript
vuejs如何配置less
2017/04/25 Javascript
令按钮悬浮在(手机)页面底部的实现方法
2017/05/02 Javascript
深究AngularJS——ng-checked(回写:带真实案例代码)
2017/06/13 Javascript
浅谈react受控组件与非受控组件(小结)
2018/02/09 Javascript
webpack-dev-server远程访问配置方法
2018/02/22 Javascript
详解在网页上通过JS实现文本的语音朗读
2019/03/28 Javascript
原生js实现each方法实例代码详解
2019/05/27 Javascript
layui 富文本图片上传接口与普通按钮 文件上传接口的例子
2019/09/23 Javascript
重置Redux的状态数据的方法实现
2019/11/18 Javascript
JavaScript实现简单进度条效果
2020/03/25 Javascript
你准备好迎接vue3.0了吗
2020/04/28 Javascript
pyqt5使用按钮进行界面的跳转方法
2019/06/19 Python
python爬虫之自制英汉字典
2019/06/24 Python
Python3批量移动指定文件到指定文件夹方法示例
2019/09/02 Python
Python 炫技操作之合并字典的七种方法
2020/04/10 Python
使用Python快速打开一个百万行级别的超大Excel文件的方法
2021/03/02 Python
英国骑行、跑步、游泳、铁人三项运动装备专卖店:Wiggle
2016/08/23 全球购物
在校生汽车维修实习自我鉴定
2013/09/19 职场文书
工资收入证明样本(5篇)
2014/09/16 职场文书
2015年财政所工作总结
2015/04/25 职场文书
环境卫生标语
2015/08/03 职场文书
高中化学教学反思
2016/02/22 职场文书
python 实现mysql自动增删分区的方法
2021/04/01 Python