niapp中的日历组件需要用到开始时间和结束时间,这个时间是字符串形式的,如'2021-01-21'。
组件网址:https://ext.dcloud.net.cn/plugin?id=56
我的需求是得到7天前到现在日期的字符串形式,即
startDate: '2021-11-04'',
endDate: '2021-11-11',
上代码:
Date.prototype.format=function(fmt) {
var o={
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"h+": this.getHours(), //小时
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) {
fmt=fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
}
for (var k in o) {
if (new RegExp("(" + k + ")").test(fmt)) {
fmt=fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k])
.length)));
}
}
return fmt;
}
//N天时间戳,时间戳指从1970-01-01 0点开始到某天的毫秒数
function timestamp(days) {
return days * 24 * 60 * 60 * 1000
}
//几天前,一般以现在的时间为基准,参数默认值老的浏览器可能不支持。
function days_ago(day, base_time=Date.now()) {
return new Date(base_time - timestamp(day))
}
//最常用的今天、昨天、明天,返回时间戳
function yesterday(){
return days_ago(1)
}
function tomorrow(){
return days_ago(-1)
}
function today(){
return new Date()
}
///字符串格式化的日期,英文常用,如2021-01-01
function en_format(func){
return func.format('yyyy-MM-dd')
}
function en_today(){
return en_format(today())
}
function en_yesterday(){
return en_format(days_ago(1))
}
function en_tomorrow(){
return en_format(days_ago(-1))
}
function cn_format(func){
return func.format('yyyy年MM月dd日')
}
//中文版今天,如2020年02月22日
function cn_today(){
return cn_format(today())
}
//中文版昨天,如1949年10月01日
function cn_yesterday(){
return cn_format(days_ago(1))
}
//中文版明天,如2035年09月09日
function cn_tomorrow(){
return cn_format(days_ago(-1))
}
cn_today()
'2021年11月10日'
cn_tomorrow()
'2021年11月11日'
cn_yesterday()
'2021年11月09日'
en_today()
'2021-11-10'
en_tomorrow()
'2021-11-11'
en_yesterday()
'2021-11-09'
en_format(days_ago(7))
'2021-11-03'
代码还能再精简,不过于我是已经够用了。
我是@爱玩的安哥,关注我获取更多有用知识
编程世界中,Python是一种广泛使用的高级编程语言,其简单易学的特点吸引了众多初学者。Python提供了许多内置模块和库,其中之一就是calendar模块。在 Python 中,我们已经学习了datetime,time等处理时间跟日期的模块。今天我们来学习下calendar 模块,calendar 为我们提供了处理日期、时间和日历的功能。它可以帮助我们生成日历,管理日期,并执行一些基本的日期计算。让我们一起深入了解 calendar 模块的基本用法和功能。
一. 导入 calendar 模块
import calendar
二. 基本用法
1.获取指定年份的日历
>>> import calendar
>>> year_calendar=calendar.TextCalendar(calendar.SUNDAY)
>>> year=2023
>>> print(year_calendar.formatyear(year))
这个例子展示了如何使用 TextCalendar 类来获取指定年份的日历,并使用 formatyear() 方法格式化输出。
2.获取指定月份的日历
>>> month_calendar=calendar.TextCalendar(calendar.SUNDAY)
>>> year=2023
>>> month=12
>>> print(month_calendar.formatmonth(year, month))
formatmonth() 方法用于获取指定年份和月份的日历。
3. 获取一个月的天数
calendar.monthrange(year, month) 是一个Python内置函数,用于返回指定年份和月份的日历信息。它返回一个包含两个元素的元组,第一个元素是指定月份的第一天是星期几(0表示星期一,6表示星期日),第二个元素是指定月份的总天数
>>> import calendar
>>> month=calendar.monthrange(2023, 12)[1]
>>> print(month)
31
获取指定月份第一天是星期几
>>> import calendar
>>> first=calendar.monthrange(2023, 12)[0]
>>> print(first)
4
4. 实际应用场景
calendar 模块在日程管理、日期操作、特定日期的计算等方面有着广泛的应用。比如在日历应用、计划任务、会议安排等领域。
5. 注意事项
calendar 模块提供了一些常用的方法来处理日期和日历,但并不包含所有的日期处理功能。
注意 firstweekday 参数,它指定了一周的起始日,默认为星期一。
总结
calendar 模块是 Python 中处理日历和日期的强大工具,提供了生成日历、管理日期和执行日期计算的功能。通过了解其基本用法和方法,你可以更好地处理日期和日历相关的操作。
更多用法参考官方文档
https://docs.python.org/3/library/calendar.html?highlight=calendar
划每一天教学设计
教学目标:
1.让学生了解日历的三种分类方式https://www.shimengyuan.com/nianji/719.html。
2.了解日历的作用。
3.通过手工制作挂历,学会发现美、发明美。
教学重难点:
重点:学会制作日历、知道日历的用处。
难点:制作日历的美观性和实用性的结合。
准备工作: 教师:卡纸、剪刀、彩色笔、胶水、各种手工制的挂历等。
学生:卡纸、剪刀、彩色笔、胶水等。
https://www.renjiaoshe.com/jiaocai/384.html
教学过程:
一、激趣导入
1. 出示龟兔赛跑动画短片,师生欣赏。
2. 思考:兔子为什么输给乌龟?指名学生回答。
3. 引入课题。
4. 板书课题,学生齐读课题。
二、新授
1. 指名回答:如何规划自己的一天。
2. 提问。平时用什么方式了解日期。
3. 出示日历图片,询问名称。
4. 介绍日历分类方式
(1)出示日历、月历、周历、年历图片,询问分类依据。
(2)出示横式日历和竖式日历,介绍日历第二种分类方式。
(3)以图片引导学生思考,介绍第三种分类方式。
5. 介绍日历的用处。
6. 出示优秀学生作品。
7. 出示要求,学生自读,小组合作制作贺卡。
8. 指名学生评价已完成的作品。
三、教师总结
1. 这一节课你学到了什么?
2. 小结:本课已接近尾声,通过这节课的学习,我们了解了日历的三种分类方式和日历的作用。课后希望同学们认真观察生活,养成发现美、发明美的习惯。
3. 布置作业
自己制作一张贺卡。
板书设计:
第13课 规划每一天
时间长短:日历 周历 月历 年历
排列方式:横式 竖式
图 案 :动物 植物 人物等
教学反思:
随着科技水平的提高,人们通过手机,电脑等现代工具获取日期信息,台历,挂历日渐退居二线。 本节课可利用制作挂历这一讨论活动引起学生对时间概念的思考,激起学生规划自己的时间的念头,并激起学生的创作欲望。 通过学生分享交流自己制作的挂历,教师补充和总结,让学生对挂历更有兴趣。然后,通过欣赏大量风格迥异的管理图片或实物,拓展学生的想象空间,使其设计思路更加开阔。 教学中,只需要提醒学生把握好挂历的结构特点,,而对表现形式不必进行过多限制,这让学生创作时才不感觉拘束。
*请认真填写需求信息,我们会在24小时内与您取得联系。