用java输出,从某年某月的某一天到另一个某年某月的某一天的,中间的所有日子,和判断是周几。
看代码吧
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 | public class Test2 { /** * 从year1年month2月到year2年到month2月的 * * @param args */ int days = 0 ; public static void main(String[] args) { int year1= 2013 ; int year2 = 2014 ; int month1 = 2 ; int month2 = 1 ; int day1 = 3 ; int day2 = 24 ; Test2 t = new Test2(); t.printDay(year1, month1,day1, year2, month2,day2); } public void printDay( int year1, int month1, int day1, int year2, int month2, int day2) { int sum = 0 ; int sum1 = 0 ; int sum2 = 0 ; int year=year1; for (; year <= year2;year++ ) { int m = month1; int m2 = 12 ; // 第二年要从1月开始循环 if (year >year1) { m= 1 ; // m2 = month2; } //循环的年份和终止的年份相同时,到终止年份的月份终止循环 if (year == year2){ m2 = month2; } for (; m <= m2; m++) { // 求这个月的第一天是这一年的第几天; sum1=month(year,m); // 求从1900.01.01开始过到咯第几天; for ( int j = 1900 ; j < year; j++) { if (j % 4 == 0 && j % 100 != 0 || j % 400 == 0 ) { sum2 += 366 ; } else { sum2 += 365 ; } } sum = sum1 + sum2; System.out.println( "——————————————" + year + " " + m+ "—————————————————————————" ); int a= 1 ; if (year == year2&&m==month2) { //m=1; // m2 = month2; days=day2; } if (year==year1&&m==month1){ a=day1; } for (; a <= days; a++) { //b代表星期几,0是星期日 int b = (sum + a) % 7 ; System.out.print(a+ " " + b+ "\t" ); if ((sum + a) % 7 == 6 ) { System.out.println(); } } sum1 = 0 ; sum2 = 0 ; sum = 0 ; System.out.println( "\n" ); } } } public int month( int year, int month) { int summ = 0 ; for ( int i = 1 ; i <= month; i++) { // 判断每月的天数; switch (i) { case 2 : if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0 ) { days = 29 ; } else { days = 28 ; } break ; case 4 : case 6 : case 9 : case 11 : days = 30 ; break ; default : days = 31 ; break ; } if (i < month) { summ += days; } } System.out.println(summ); return summ; } } |
发表回复