看到外国人怕13号和星期五重叠,于是想看看什么时候会重叠,但没有现成的,于是写了点代码算了一下
public class Firday13 { public static int dx[] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 }; public static int dy[] = { 0,31,29,31,30,31,30,31,31,30,31,30,31 }; /** *闰年判断 */ public static boolean isYun(Integer year){ if (year%400 == 0 ||(year%4 == 0 && year%100 == 0) ){ return true; }else { return false; } } public static void firday(Integer year ,Integer week){ int a[] ; //循环月份 if (isYun(year)){ a = dy; }else { a = dx; } for (int i = 1; i < 12; i++) { for (int j = 1; j <= a[i]; j++,week++) { if (week>7){ week = week%7; } if (week == 5 && j == 13){ System.out.println(year+"年"+i+"月"+j+"日"+"是星期五"); } } } } /** * 0是星期天,返回星期几 */ public static int getWeek(int year){ Calendar calendar = Calendar.getInstance(); calendar.set(year,0,1); int x = calendar.get(calendar.DAY_OF_WEEK)-1; return x; } public static void main(String[] args) { for (int i = 1990; i <2100 ; i++) { firday(i,getWeek(i)); } } }
看了两年是准的,一年一两次出现