专门做辅助的扎金花网站,百度域名怎么注册,广东省农业农村厅彭彬,wordpress i18nvoidshow_year(int year){inti,j,k,t,n; // 用来辅助计数int table[24][21] {0}; // 年历数组int month_day[12] {31,28,31,30,31,30,31,31,30,31,30,31}; // 每月上限天数i…voidshow_year(int year){inti,j,k,t,n; // 用来辅助计数int table[24][21] {0}; // 年历数组int month_day[12] {31,28,31,30,31,30,31,31,30,31,30,31}; // 每月上限天数if ((0 year%4 || 0 year%400) 0 ! year%100) //闰年检查如果是闰年2月上限天数改为29{month_day[2] 29;}printf (******************\n);printf (%d \n, year);printf (******************\n);for (i0; i12; i) // 为了使逻辑更加清晰一次循环只完成一个月的日期填写i为当前月份{ncal_first(i1); // n为当前月份第一天的星期数cal_first函数中的月数必须为1~12for (j(i/3)*6; j3)*66; j) // 所以这里传参时1j用来根据月数控制每个月在年历数组中的第一维坐标{ // 坐标(纵坐标)的位置同样的用来根据月数控制每个月在年历数组中for (k(i%3)*7; k3)*77; k) // 第二维坐标(横坐标)的位置{t (j%6)*7 k%7 - n 2; // t用来临时记录当前位置应该填入年历数组的值为了简化逻辑这里通过if (0 t) // 数学计算记录每一个位置应填入的值(j%6)*7 k%7计算出的值是本{ // 月的第几个位置-n2就会计算出当前格内正确的日期。这样做会导致得出continue; // 负数或0或炒熟每月天数上限我们用if continue将其跳过这样} // 不正确的日期就依然是年历数组初始化时的0if (t month_day[i]){table[j][k]t;}else{continue;}}}}for (i0; i24; i) // 至此年历数组已经全部填好接下来是打印环节相信已经比较好理解了{ // 每隔6行打印标头7列多打印几个空格遇到数组中为0则同样打印空格if (0 i){printf (Jan Feb Mar\n);printf (Mon Tue Wen Thu Fir Sat Sun Mon Tue Wen Thu Fir Sat Sun Mon Tue Wen Thu Fir Sat Sun\n);}if (6 i){printf (Apr May Jun\n);printf (Mon Tue Wen Thu Fir Sat Sun Mon Tue Wen Thu Fir Sat Sun Mon Tue Wen Thu Fir Sat Sun\n);}if (12 i){printf (Jul Agu Sep\n);printf (Mon Tue Wen Thu Fir Sat Sun Mon Tue Wen Thu Fir Sat Sun Mon Tue Wen Thu Fir Sat Sun\n);}if (18 i){printf (Oct Nov Dec\n);printf (Mon Tue Wen Thu Fir Sat Sun Mon Tue Wen Thu Fir Sat Sun Mon Tue Wen Thu Fir Sat Sun\n);}for (j0; j21; j){if (7 j || 14 j){printf ( );}if (0 table[i][j]){printf ( );continue;}printf (%4d, table[i][j]);}printf (\n);}}