datetime日,周,月,季

news/2024/10/18 0:22:11/

import datatime
date = datetime.datetime.now()
 

当天:

newdate = datetime.datetime.now()
condtions = {'datadate': newdate}

昨天:
newdate = date + datetime.timedelta(days=-1)
condtions = {'datadate': newdate}

本周初:
newdate = now - datetime.timedelta(days=now.weekday())
condtions = {'datadate': newdate}

本周末:
newdate = now + datetime.timedelta(days=6 - now.weekday())
condtions = {'datadate': newdate}

上周初:
newdate = now - datetime.timedelta(days=now.weekday() + 7)
condtions = {'datadate': newdate}

上周末:
newdate = now - datetime.timedelta(days=now.weekday() + 1)
condtions = {'datadate': newdate}

月初:
newdate = date.replace(day=1)
condtions = {'datadate': newdate}

月末:
year = date.year
month = date.month
a, b = calendar.monthrange(year, month)           # a,b——weekday的第一天是星期几(0-6对应星期一到星期天)和这个月的所有天数
newdate = datetime.datetime(year=year, month=month, day=b) # 构造本月月末datetime
condtions = {'datadate': newdate}

上月末:
date_now = date.replace(day=1)
newdate = date_now + datetime.timedelta(days=-1)
condtions = {'datadate': newdate}

上月初:
date_now = date.replace(day=1)
date_now = date_now + datetime.timedelta(days=-1)
newdate = datetime.datetime(date_now.year, date_now.month, 1)
condtions = {'datadate': newdate}

年初:
newdate = date.replace(month=1, day=1)
condtions = {'datadate': newdate}

年末:
newdate = date.replace(month=12, day=31)
condtions = {'datadate': newdate}

去年初:
newdate = date.replace(month=1, day=1)
newdate = newdate + datetime.timedelta(days=-1)
newdate = datetime.datetime(newdate.year, 1, 1)
condtions = {'datadate': newdate}

去年末:
newdate = date.replace(month=1, day=1)
newdate = newdate + datetime.timedelta(days=-1)
condtions = {'datadate': newdate}

季初:
month = (date.month - 1) - (date.month - 1) % 3 + 1
newdate = datetime.datetime(date.year, month, 1)
condtions = {'datadate': newdate}

季末:
month = (date.month - 1) - (date.month - 1) % 3 + 1
if month == 10:
  newdate = datetime.datetime(date.year + 1, 1, 1) + datetime.timedelta(days=-1)
else:
  newdate = datetime.datetime(date.year, month + 3, 1) + datetime.timedelta(days=-1)
condtions = {'datadate': newdate}

上季初:
month = (date.month - 1) - (date.month - 1) % 3 + 1
newdate = datetime.datetime(date.year, month, 1)
newdate = newdate + datetime.timedelta(days=-1)
newdate = datetime.datetime(newdate.year, newdate.month - 2, 1)
condtions = {'datadate': newdate}

上季末:
month = (date.month - 1) - (date.month - 1) % 3 + 1 # 10
newdate = datetime.datetime(date.year, month, 1)
newdate = newdate + datetime.timedelta(days=-1)
condtions = {'datadate': newdate}

半年初:
month = (date.month - 1) - (date.month - 1) % 6 + 1
newdate = datetime.datetime(date.year, month, 1)
condtions = {'datadate': newdate}

半年末:
month = (date.month - 1) - (date.month - 1) % 6 + 1
if month == 7:
  newdate = datetime.datetime(date.year + 1, 1, 1) + datetime.timedelta(days=-1)
else:
  newdate = datetime.datetime(date.year, month + 6, 1) + datetime.timedelta(days=-1)
condtions = {'datadate': newdate}

上个半年初:
month = (date.month - 1) - (date.month - 1) % 6 + 1
newdate = datetime.datetime(date.year, month, 1)
newdate = newdate + datetime.timedelta(days=-1)
newdate = datetime.datetime(newdate.year, newdate.month - 5, 1)
condtions = {'datadate': newdate}

上个半年末:
month = (date.month - 1) - (date.month - 1) % 6 + 1
newdate = datetime.datetime(date.year, month, 1)
newdate = newdate + datetime.timedelta(days=-1)
condtions = {'datadate': newdate}


月平均值:
ms_newdate = date.replace(day=1)
me_newdate = date
new_date = (ms_newdate, me_newdate)

季平均值:
month = (date.month - 1) - (date.month - 1) % 3 + 1
ss_newdate = datetime.datetime(date.year, month, 1)
se_newdate = date
new_date = (ss_newdate, se_newdate)

半年平均值:
month = (date.month - 1) - (date.month - 1) % 6 + 1
hs_newdate = datetime.datetime(date.year, month, 1)
he_newdate = date
new_date = (hs_newdate, he_newdate)

年均值:
ys_newdate = date.replace(month=1, day=1)
ye_newdate = date
new_date = (ys_newdate, ye_newdate)


if condtions:
  query_res = Entry.objects.filter(**condtions).filter().exclude()
if new_date:
  query_res = Entry.objects.filter(datadate__range=new_date).filter().exclude()


http://www.ppmy.cn/news/581921.html

相关文章

【Java】JVM(五)

垃圾回收机制 判断对象的存活 在堆里面存放着几乎所有的对象实例,垃圾回收器在对对进行回收前,要做的事情就是确定这些对象中哪些还是“存活”着,哪些已经“死去”(死去代表着不可能再被任何途径使用得对象了) 可达…

前端开发常用命令npm\git

1、查看npm源 npm config get registry 2、设置npm源 npm config set registryhttps://registry.taobao.npm.org/ 3、清除缓存 npm cache clean --fore npm clean varify

移动开发十年

内容简介 2017,顶着刘海的 iPhone X 带着“史上升级变动最大”的 iOS 11,依然碎片化严重的 Android 带着“更快、更强大、更安全” 的8.0来到我们面前。回首过去十年,从诺记的 Symbian、摩托罗拉的 Linux、苹果的 iOS、微软的 Windows Phone…

Motorola、Intel CAN 解析【结构体位域法】

Motorola、Intel CAN 解析【结构体位域法】 嵌入式软件开发中大多都与CAN打交道,但是不同项目CAN协议以及格式均会有一定的差异,软件如何处理才会更加便捷,更加模块化呢?本文主要是小端格式CAN软件解析 “负负得正,将…

S19文件解析实现代码

介绍: 为了在不同的计算机平台之间传输程序代码和数据,摩托罗拉将程序和数据文件以一种可打印的格式(ASCII格式)编码成s格式文件。s格式文件是Freescale推荐使用的标准文件传送格式。编译完成之后,Freescale CodeWarrior编译器将在bin文件夹…

Motorola和Intel格式报文解析的区别

结论:无论用的Motorola,还是Intel格式,只在单个信号跨字节时解析才有区别。 先看下Vector的CANoe中dbc编辑器是如何呈现报文的: 图1 CAN报文中byte与bit顺序 从图中可以看出,每行表示一个字节的8个位,从右…

matlab的dbc解析,解析.DBC文件, 读懂CAN通信矩阵,实现车内信号仿真

通常我们拿到某个ECU的通信矩阵数据库文件,.dbc后缀名的文件。 直接使用CANdb++ Editor打开,可以很直观的读懂信号矩阵的信息,例如下图: 现在要把上图呈现的信号从.dbc文件中解析出来,供实现自动化仿真总线信号使用,比如使用python+支持can收发的硬件即可替代canoe实现信…

WindowsCE摩托罗拉MC3100 PDA扫描开启和HEX解码

PDA扫描设置参考: http://blog.csdn.net/wang_cel/article/details/46845731 1.开启设备扫描功能 1.1定位扫描应用开启的位置 打开控制面板 点击“DataWedge”图标 双击图标打开; 1.2设置扫描格式并开启回车功能 点击“Stat…