now = datetime.datetime.now()
before_n_week_start = now - datetime.timedelta(days=now.weekday() + 7*n, hours=now.hour, minutes=now.minute, seconds=now.second, microseconds=now.microsecond)
before_n_week_end = before_n_week_start + datetime.timedelta(days=6, hours=23, minutes=59, seconds=59)
return before_n_week_start, before_n_week_end
def get_week_monday_and_sunday_by_date(date_str):
给定一个日期-返回日期所在周的周一0点时间 和 周日23点59分59秒
:param date_str: 如:"2020-05-01"
:return: 给定一个日期-返回日期所在周的周一0点时间 和 周日23点59分59秒
now_time = datetime.datetime.strptime(date_str + " 00:00:00", "%Y-%m-%d %H:%M:%S")
week_start_time = now_time - datetime.timedelta(days=now_time.weekday(), hours=now_time.hour, minutes=now_time.minute, seconds=now_time.second, microseconds=now_time.microsecond)
week_end_time = week_start_time + datetime.timedelta(days=6, hours=23, minutes=59, seconds=59)
return week_start_time, week_end_time
def get_all_monday_and_sunday_by_date_interval(start_date_str, end_date_str):
给定时间(日期)区间,返回区间中所有的周起止时间列表(不含本周)
:param start_date_str: "2020-01-31"
:param end_date_str: "2020-05-08"
:return:
date_list = list()
# 本周一开始时间
now = datetime.datetime.now()
now_week_monday = now - datetime.timedelta(days=now.weekday(), hours=now.hour, minutes=now.minute, seconds=now.second, microseconds=now.microsecond)
print('now_week_monday = {}'.format(now_week_monday))
# 起始时间所在周 - 周一和周日
start_week_monday, start_week_sunday = get_week_monday_and_sunday_by_date(start_date_str)
print('start_week = {} -> {}'.format(start_week_monday, start_week_sunday))
# 截止时间所在周 - 周一和周日
end_week_monday, end_week_sunday = get_week_monday_and_sunday_by_date(end_date_str)
print('end_week = {} -> {}'.format(end_week_monday, end_week_sunday))
if end_week_monday < now_week_monday:
date_list.append({"start_time": end_week_monday, "end_time": end_week_sunday})
count = 1
while True:
week_start_time = end_week_monday - datetime.timedelta(days=7 * count)
week_end_time = week_start_time + datetime.timedelta(days=6, hours=23, minutes=59, seconds=59)
print('middle_week = {} -> {}'.format(week_start_time, week_end_time))
count += 1
if week_start_time >= now_week_monday:
continue
if week_start_time < start_week_monday:
break
print('append middle_week = {} -> {}'.format(week_start_time, week_end_time))
date_list.append({"start_time": week_start_time, "end_time": week_end_time})
return date_list
if __name__ == "__main__":
# 给定时间(日期)区间,返回区间中所有的周起止时间列表(不含本周)
date_list = get_all_monday_and_sunday_by_date_interval("2020-04-01", "2020-05-31")
print('date_list = {}'.format(date_list))
# 给定一个日期-返回日期所在周的周一0点时间 和 周日23点59分59秒
# week_start_time, week_end_time = get_week_monday_and_sunday_by_date('2020-04-10')
# print('result = {} -> {}'.format(week_start_time, week_end_time))
(1)
datetime
里面主要的函数(2)如何判断是不是
周一
或者一个月的第一天(3)遍历从一个
日期
到另一个
日期
的方法(4)跑步锻炼提示:以下是本篇文章正文内容,下面案例可供参考。
这个库是在阅读别人的源码的时候看到的,觉得十分好用,然而在网上找到的相关资料甚少,所以阅读了源码来做一个简单的用法总结。在网络的路由表中,经常会通过掩码来表示流表的匹配域,在
python
中有的时候为了方便的模拟流表的匹配过程,可以通过一个整数
区间
来表示诸如IP等的匹配范围,而本文介绍的库在
区间
处理上是十分的强大与方便。
不论是在Linux系统还是Windows系统上,我们都可以方便的安装p
public void test(){
/**
日期
格式*/
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String StartTime = "2020-06-01";
String[] strings = this.addDay(0, dateFormat.parse(StartTime));
System.out.println("start"+strings[0]
技术图形,诸如头肩顶、头肩底、W底、圆底等,代码逻辑实现后,要使用股票数据验证,这类主要依靠视觉判断的技术图形,获得的结果能及时在图表中展示出来,对代码的开发、校验、结果的准确度确认等能起到事半功倍的效果,本工具就是基于此需求所做的开发。
# 交流群: 921673324
def gen_date(start_date_str, end_date_str=None):
start_date =
datetime
.
strptime
(start_date_str, '%Y-%m-%d').date()
if end_date_str is None:
end_date_s...
你真的有几个选择。我不完全确定当你试图直接用一个'pd.read_csv文件'但正如上面建议的那样,您可以定义一组格式字符串,您可以尝试使用这些字符串来解析数据。在另一个选择是将date列作为字符串读入,然后自己解析它。如果希望列类似于“YYYY-MM-DD”,则解析字符串以仅包含该数据,然后将其保存回,如下所示。在import pandas as prandasimport
datetime
df...
Python
提供了多个内置模块用于操作
日期
时间
,像calendar,time,
datetime
。time模块我在之前的文章已经有所介绍,它提供的接口与C标准库time.h基本一致。相比于time模块,
datetime
模块的接口则更直观、更容易调用。今天就来讲讲
datetime
模块。
datetime
模块定义了两个常量:
datetime
.MINYEAR和
datetime
.MAXYEAR,分别表示
datetime
所能表示的最小、最大年份。其中,MINYEAR = 1,MAXYEAR = 9999。(对于偶等玩