蔡勒公式的代码java
时间: 2024-05-16 20:12:06 浏览: 119
很好,蔡勒公式是一个计算星期几的算法,这里是Java语言的实现代码:
```java
public static int dayOfWeek(int year, int month, int day) {
if (month == 1 || month == 2) {
month += 12;
year--;
}
int c = year / 100;
year = year % 100;
int week = year + year/4 + c/4 - 2*c + 26*(month+1)/10 + day - 1;
if (week < 0) {
week = (week % 7 + 7) % 7;
} else {
week = week % 7;
}
return week;
}
```
希望这个代码能够帮到你。
相关问题
import java.util.*; public class Main { public static void main(String []args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int a[]=new int[7]; for(int i=1900;i<=1900+n-1;i++) { for(int j=1;j<=12;j++) { int m=j,y=i; if(m==1||m==2) { m+=12; y--; } int d=13; switch((d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7) { case 0:a[2]++;break; case 1:a[3]++;break; case 2:a[4]++;break; case 3:a[5]++;break; case 4:a[6]++;break; case 5:a[0]++;break; case 6:a[1]++;break; } } } for(int i=0;i<7;i++) { System.out.print(a[i]+" "); } } }分析时间
这段代码实现的功能是输入一个年数n,计算从1900年开始到1900年+n-1年的每个月的13号是星期几,并统计每个星期几出现的次数。最后输出每个星期几出现的次数。
具体实现过程:
1. 首先使用Scanner类获取用户输入的年数n。
2. 创建一个长度为7的整型数组a,用于统计每个星期几出现的次数。数组下标0-6分别对应星期天到星期六。
3. 使用两个for循环,外层循环遍历从1900年开始到1900年+n-1年的每一年,内层循环遍历每个月份。
4. 对于每个月份,首先判断是不是1月或2月,如果是,则将月份加12,年份减1(因为在计算公式中,1月和2月被视为上一年的13月和14月)。
5. 接下来根据蔡勒公式计算该月13号是星期几,并将相应的星期几出现次数加1。
6. 最后遍历整个数组a,输出每个星期几出现的次数。
需要注意的是,蔡勒公式只适用于格里高利历(即我们现在使用的公历),对于其他历法可能不适用。
阅读全文