首页 > 代码库 > [C语言练习]万年历加强版
[C语言练习]万年历加强版
?
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 | /** * @copyright 2011 Chunhui Wang * * wangchunhui@wangchunhui.cn */ #include<stdio.h> int main() { printf ( "\t\t\t万年历\n" ); printf ( "\t\t\t\t------Made by Chunhui Wang\n\n" ); int i,year, month; int day; //记录每月第一天是周几。 int date; //每年星期变化,平年加1,闰年加2。 int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; //月份天数 。 int Year[10000]; //每年第一天周几。 Year[1900]=1; for (i=1900;i<9999;i++) { date=1; if ((i%4==0)&&(i%100!=0)||(i%400==0)) { date=2; } Year[i+1]=(Year[i]+date)%7; } while (1) { printf ( "请输入年份(如1900):" ); scanf ( "%d" ,&year); printf ( "请输入月份(如 01):" ); scanf ( "%d" ,&month); a[2]=28; if (((year%4==0)&&(year%100!=0)||(year%400==0))&&(month>=2)) { a[2]=29; } day=Year[year]; for (i=1;i<month;i++) { day=day+a[i]; } day=day%7; printf ( "\t\t\t\t%d年%d月份\n\n" ,year,month); printf ( "\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六\t星期日\n" ); for (i=0;i<day;i++) { printf ( "\t" ); } if (day==0) printf ( "\t\t\t\t\t\t\t" ); for (i=0;i<a[month];i++) { printf ( "%d\t" ,i+1); if ((i+day)%7==0) { printf ( "\n\t" ); } } printf ( "\n\n\n\n" ); } return 0; } |
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。