Zeller公式实现给定年份和月份,输出对应的月历(Java)

本文介绍了如何利用Zeller公式在Java中实现根据年份和月份输出对应的月历。Zeller公式用于计算特定日期的星期,文章提到了公式应用的调整,以适应直接输出整个月的日历需求。作者分享了实现代码,包括获取星期的方法和生成整月日历的不足之处,并通过主方法进行了测试。
摘要由CSDN通过智能技术生成

历史上的某一天是星期几?未来的某一天是星期几?关于这个问题,有很多计算公式(两个通用计算公式和一些分段计算公式),其中最著名的是蔡勒(Zeller)公式。即
w=(y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1)/mod7
其中[]表示取整,mod表示取余,w,c,y,m,d分别表示星期,世纪,年,月,日,这里某年的1和2月要看成上一年的13,14月,年份用的是四位年份的后两位,前两位是世纪的值。

具体公示的推导过程参考这篇博客,写的很详细,这里实现他主要是为了熟悉方法
https://blog.csdn.net/Galaxy_Li/article/details/6753730

这个题目我做的是输入年份和月份直接输出当月的每一天对应的周几,而不是哪一天是周几,所以略微会有变化。
下面是我的实现:

	public static int getdays(int year,int month)
	{
		int days=-1;
		switch(month)
		{
		case 1:case 3:case 5:case 7:case 8:case 10:case 12:
			days=31;break;
		case 4:case 6:case 9:case 11:
			days=30;break;
		case 2://二月要判断年份是否为闰年
		{
			if(year%400==0||year%4==0&&year%100!=0)
			{
				days=29;
			}
		
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值