文章目录

  • 问题描述
  • 解决方案
  • 代码
  • 结果
  • 参考文献

问题描述

对下周几本周几等进行日期映射

解决方案

利用Python日期时间处理库dateutil和硬编码,代码粗暴,效果有待检验

代码

time.txt

今天
明天
后天
大后天
大大后天
早上
中午
晚上
傍晚
今日
第一天
明日
第二天
两天后
第三天
两天后
第三天
三天后
第四天
四天后
第五天
周一
周二
周三
周四
周五
周六
周日
周天
本周一
本周二
本周三
本周四
本周五
本周六
本周日
本周天
下周一
下周二
下周三
下周四
下周五
下周六
下周日
下周天
下星期一
下星期二
下星期三
下星期四
下星期五
下星期六
下星期日
下星期天
周1
周2
周3
周4
周5
周6
周7
from datetime import date
from dateutil.relativedelta import relativedeltadef parseWeekday(x: str) -> int:'''解析中文的周几'''TODAY = date.today()if x in ['今天', '今日', '第一天']:return TODAYif x in ['明天', '明日', '第二天', '一天后']:return TODAY + relativedelta(days=+1)if x in ['后天', '后日', '第三天', '二天后', '两天后']:return TODAY + relativedelta(days=+2)if x in ['大后天', '大后日', '第四天', '三天后']:return TODAY + relativedelta(days=+3)if x in ['大大后天', '大大后日', '第五天', '四天后']:return TODAY + relativedelta(days=+4)if x in ['大大大后天', '大大大后日', '第六天', '五天后']:return TODAY + relativedelta(days=+5)TIME = {1: ['1', '一'],2: ['2', '二'],3: ['3', '三'],4: ['4', '四'],5: ['5', '五'],6: ['6', '六'],7: ['7', '七', '日', '天']}weeks = Noneif x.startswith('上') or x.startswith('前'):weeks = -1if x.startswith('下') or x.startswith('后') or x.startswith('明'):weeks = 0count = 0for k, v in TIME.items():for i in v:if i in x:count += 1weekday = kif count != 1:return TODAYelif weeks == 0 or weeks == -1:return TODAY + relativedelta(weekday=weekday - 1, weeks=weeks)else:if TODAY.isoweekday() >= weekday:return TODAY + relativedelta(days=+1, weekday=weekday - 1, weeks=-1)else:return TODAY + relativedelta(days=+1, weekday=weekday - 1)if __name__ == '__main__':with open('time.txt', encoding='utf-8') as f:data = f.read().splitlines()for x in data:print(x, parseWeekday(x=x))

结果

今天 2020-06-11
明天 2020-06-12
后天 2020-06-13
大后天 2020-06-14
大大后天 2020-06-15
早上 2020-06-11
中午 2020-06-11
晚上 2020-06-11
傍晚 2020-06-11
今日 2020-06-11
第一天 2020-06-11
明日 2020-06-12
第二天 2020-06-12
两天后 2020-06-13
第三天 2020-06-13
两天后 2020-06-13
第三天 2020-06-13
三天后 2020-06-14
第四天 2020-06-14
四天后 2020-06-15
第五天 2020-06-15
周一 2020-06-08
周二 2020-06-09
周三 2020-06-10
周四 2020-06-11
周五 2020-06-12
周六 2020-06-13
周日 2020-06-14
周天 2020-06-14
本周一 2020-06-08
本周二 2020-06-09
本周三 2020-06-10
本周四 2020-06-11
本周五 2020-06-12
本周六 2020-06-13
本周日 2020-06-14
本周天 2020-06-14
下周一 2020-06-15
下周二 2020-06-16
下周三 2020-06-17
下周四 2020-06-11
下周五 2020-06-12
下周六 2020-06-13
下周日 2020-06-14
下周天 2020-06-14
下星期一 2020-06-15
下星期二 2020-06-16
下星期三 2020-06-17
下星期四 2020-06-11
下星期五 2020-06-12
下星期六 2020-06-13
下星期日 2020-06-14
下星期天 2020-06-14
周1 2020-06-08
周2 2020-06-09
周3 2020-06-10
周4 2020-06-11
周5 2020-06-12
周6 2020-06-13
周7 2020-06-14

参考文献

  1. Python日期时间处理库dateutil

Python对下周几本周几等进行中文日期解析相关推荐

  1. python时间模块提取时间_【转载】python自动提取文本中的时间(包含中文日期)...

    import re import chardet from datetime import datetime,timedelta # 匹配正则表达式 matchs = { 1:(r'\d{4}%s\d ...

  2. python代码获取今天、昨天、明天的日期

    python代码获取今天.昨天.明天的日期 #python代码获取今天.昨天.明天的日期 # Python program to find yesterday, # today and tomorro ...

  3. python关于解决‘\u‘开头的字符串转中文的方法

    python关于解决'\u'开头的字符串转中文的方法 参考文章: (1)python关于解决'\u'开头的字符串转中文的方法 (2)https://www.cnblogs.com/Lee-yl/p/1 ...

  4. python过去日期_利用python获取当前日期前后N天或N月日期的方法示例

    前言 最近因为工作原因,发现一个Python的时间组件,很好用分享出来!(忘记作者名字了,在这里先感谢了),下面话不多说,来一起看看详细的介绍吧. 示例代码: # -*- coding: utf-8 ...

  5. excel调用python编程-使用Python和xlwt向Excel文件中写入中文的实例

    sheet1.write(row_num,0,f) row_num = 1 book.save('demo.xls') 程序执行结果如下: grey@DESKTOP-3T80NPQ:/mnt/e/01 ...

  6. python将dict中的unicode打印成中文

    python将dict中的unicode打印成中文 import json a = {u'content': {u'address_detail': {u'province': u'\u5409\u6 ...

  7. python现在的时间是几点_Python 的日期和时间处理

    来源:开源最前线  ID:OpenSourceTop 写过Python程序的人都知道,Python日期和时间的处理非常繁琐和麻烦. 除了将字符串转换为更有用的 Python 对象之外,还有许多库具有一 ...

  8. python 日期 格式转换 英文_量化数据预处理-中文日期(含)转英文日期

    1.引入 时间是pandas数据的主要索引.中文网站上下载的数据含有中文日期,其中包含年月日.如下图所示: 沪深300指数的数据含有中文,需要处理成python的 datetime格式才能放入回测框架 ...

  9. 怎么用python将日期转化为数字_python实现将中文日期转换为数字日期

    python实现将中文日期转换为数字日期,日期,中文,转换为,数字,报错 python实现将中文日期转换为数字日期 易采站长站,站长之家为您整理了python实现将中文日期转换为数字日期的相关内容. ...

最新文章

  1. 《2018中国大数据发展指数报告》发布:广东、上海、贵州、北京、重庆领先
  2. Verilog赋值间延迟语句与赋值内延迟语句比较
  3. 用CSS3让不知道宽高的元素居中
  4. vscode或cmd:无法将“git”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确
  5. java多线程意义_Java多线程学习之多线程的概念及意义
  6. HDU - 7029 Median 思维
  7. ibm liberty_使用Eclipse和Open Liberty的Java EE 8上的Java 9
  8. ios高效开发-正确的使用枚举(Enum)
  9. javascript中事件
  10. 学会科学饮水令你越喝越美
  11. 多任务学习Multi-Task Learning
  12. VMClean(vmware卸载清理,解决卸载MSI问题)
  13. python 利用matploylib画动态雷达实时显示图
  14. perl和bugzilla
  15. 【日记】python获取公众号的全部文章并截取图导出
  16. 如何拯救你,我的Oculus?
  17. 微信公众号一次性订阅消息
  18. matlab分数约分,分母
  19. 利用hive源码解析sql查了哪些表哪些字段
  20. 解决 WARNING: Published ports are discarded when using host network mode 问题

热门文章

  1. tensorflow如何使用gpu
  2. 基于统计的机器翻译(SMT)
  3. 微信小程序全局分享转发实现-无需页面单独设置
  4. (八) 基于cadence 617 简单差分电路仿真
  5. Leveldb源码分析--1
  6. ipad python编程软件_这15个应用,程序员用iPad照样可以编程!
  7. 使用GeoServer搭建自己的地图服务
  8. 聊一款昨天新发售的大屏笔记本
  9. Datawhale 9月份学习笔记一之 图解Attention
  10. TDLAS将要完成的工作