一文详解Python calenda模块

本文深入探讨了Python的calendar模块,包括setfirstweekday、isleap、monthcalendar等方法,以及Calendar、TextCalendar和HTMLCalendar类。提供了示例代码,适合Python工程师参考。

calendar 是与日历相关的模块,该模块定义了很多类型,主要包括:Calendar、TextCalendar、HTMLCalendar,其中 Calendar 是 TextCalendar 和 HTMLCalendar 的基类,这些类有着十分丰富的日历处理方法。

1 calendar 模块

对于简单的文本日历,我们使用 calendar 模块直接调用的方法或属性即可,下面来具体看一下。

setfirstweekday(firstweekday)

设置每一周的开始(0 表示星期一,6 表示星期天),calendar 提供了 MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY、SATURDAY 和 SUNDAY 几个常量方便使用。例如,设置每周的第一天为星期天,示例如下:

import calendar
calendar.setfirstweekday(calendar.SUNDAY)

firstweekday()

返回当前设置的每星期的第一天的数值,默认为星期一。示例如下:

import calendar
print(calendar.firstweekday())

isleap(year)

如果 year 是闰年则返回 True,否则返回 False。示例如下:

import calendar
print(calendar.isleap(9102))

leapdays(y1, y2)

返回在范围 y1 至 y2 (包含 y1 和 y2 )之间的闰年的年数,其中 y1 和 y2 是年份。示例如下:

import calendar
print(calendar.leapdays(1945,2019))

weekday(year, month, day)

返回一周中的某一天 ( 0 ~ 6 代表周一至周日)。示例如下:

import calendar
print(calendar.weekday(2019,10,1))

monthrange(year, month)

返回指定年、月份第一天是星期几和这个月的天数。示例如下:

import calendar
print(calendar.monthrange(2019, 10))

monthcalendar(year, month)

返回表示一个月的日历的矩阵,每一行代表一周,此月份外的日子由零表示,每周默认从周一开始,可使用 setfirstweekday() 改变默认值。示例如下:

import calendar
print(calendar.monthcalendar(2019,10))

prmonth(theyear, themonth, w

### Java 中 Calendar 类获取日期的方法 在 Java 编程语言中,`Calendar` 是一个抽象类,提供了操作日期和时间的功能。为了创建 `Calendar` 的实例并使用其功能,通常会通过静态工厂方法 `getInstance()` 来获得默认时区和语言环境的日历对象。 #### 创建 Calendar 实例 ```java import java.util.Calendar; Calendar calendar = Calendar.getInstance(); ``` 此代码片段初始化了一个代表当前时刻的 `Calendar` 对象[^2]。 #### 获取特定字段值 要提取具体的日期组件(如年份、月份、日子),可以调用 `get(int field)` 方法,并传入相应的常量作为参数: - 年:`calendar.get(Calendar.YEAR)` - 月:注意,在 Java 中月份是从零开始计数的,即 January=0, December=11。因此,如果想要得到实际的人类可读形式,则需加一处理。 ```java int month = calendar.get(Calendar.MONTH) + 1; ``` - 日:`calendar.get(Calendar.DAY_OF_MONTH)` - 星期几:可以通过 `DAY_OF_WEEK` 字段来取得一周中的某一天,其中 Sunday 被定义为 1,而 Saturday 则是 7。 例如,下面这段程序展示了如何打印今天的完整日期信息: ```java System.out.println("Year: " + calendar.get(Calendar.YEAR)); System.out.printf("Month: %d\n", calendar.get(Calendar.MONTH)+1); System.out.println("Day of Month: " + calendar.get(Calendar.DAY_OF_MONTH)); String[] weekDays={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"}; int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK)-1; // Adjusting to match array index (0-based) if(dayOfWeek<0){ dayOfWeek+=7; } System.out.println("Day of Week: "+weekDays[dayOfWeek]); ``` 上述例子不仅能够展示基本的日期属性访问方式,还包含了对于星期名称更友好显示的支持[^3]。 另外,当涉及到跨多个单位的操作时,比如计算两个日期之间的差异或是调整现有日期到下一个周末等复杂场景下,建议利用更高层次封装好的 API 或者第三方库来进行简化开发工作流程。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值