万年历
2016-01-19 22:03
316 查看
// calendar.c #include <stdio.h> char *month_name[] = {"illegal Month", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"}; int day_tab[2][13] = {{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}}; //W = [y-1] + [(y-1)/4] - [(y-1)/100] + [(y-1)/400] + D int main(void) { int year, month, day = 1, weekday, first_weekday; printf("Please input year(1900 ~) & month\n"); scanf("%d %d", &year, &month); int leap = year%4 == 0 && year%100 != 0 || year%400 == 0; first_we 4000 ekday = (year-1 + (year-1)/4 - (year-1)/100 + (year-1)/400 + day)%7; // firstday of year int i; for(i = 1; i < month; i++){ day += day_tab[leap][i]; } weekday = (first_weekday + day-1)%7; // firstday of month printf("\n\n"); printf("\t%d\t%s\n\n", year, month_name[month]); printf(" Sun Mon Tue Wed Thu Fri Sat\n"); for(i = 1; i <= day_tab[leap][month]+weekday; i++){ if(i < weekday+1) printf("%4c", ' '); // put space else printf("%4d", i-weekday); if(i % 7 == 0) printf("\n"); } return 0; }
相关文章推荐
- Java拼接字符串时,去掉最后一个多余的逗号
- Oracle package包头和package body包体例子
- css设置table里面单元格强制换行和强制不换行
- mongoose 增删改查 基础篇
- Java拼接字符串时,去掉最后一个多余的逗号
- Java拼接字符串时,去掉最后一个多余的逗号
- eclipse 快捷键
- PHP+Apache配置备忘
- 同步synchronized用法
- 使用scipy.spatial.Delaunay 三角网的构建
- java数组内存分析
- python核心编程-使用线程锁
- mysql在centos下的安装
- CRLF injection 简单总结
- Python 5.4 定制类
- 机器学习导论
- VirtualBox安装时发生严重错误的解决办法
- 【LeetCode OJ 263】Ugly Number
- kingbaseES表存在,但是select查询不到,提示表不存在处理方式
- ExtJS stores - load JSON only once