/* * cal.c * * Created on: 2013-3-11 * Author: J.WANG */ #include <stdlib.h> #include <stdio.h> //三维数组存放日期,每年12月,日历中最多排6行(星期),每星期7天 int days[12][6][7]; //平年,闰年每个月的天数 int ds[2][12] = { { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }, { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 } }; //标题 char title[] = "SUM MON TUE WED THU FRI SAT"; //月份 int m[4][3] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 }, { 10, 11, 12 } }; //月份 char mt[][4] = { "JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC" }; //根据蔡勒公式计算日期星期几 int wd(int year, int m, int d) { int c, y, w; if (m <= 2) { year--; m += 12; } c = year / 100; y = year % 100; w = (c / 4 - 2 * c + y + y / 4 + 13 * (m + 1) / 5 + d - 1); return (w % 7 + 7) % 7; } //闰年平年 int leapYear(int year) { return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0); } int main() { int i, j, k, leap, fd,year; scanf("%d%*c",&year); //初始三维数组为0 //days[12][6][7]={0}; for (i = 0; i < 12; i++) { for (j = 0; j < 6; j++) { for (k = 0; k < 7; k++) { days[i][j][k] = 0; } } } fd = wd(year, 1, 1); leap = leapYear(year); //三维数组赋值 for (i = 0; i < 12; i++) { for (k = 0, j = 1; j <= ds[leap][i]; j++) { days[i][k][fd] = j; fd = (++fd) % 7; if (fd == 0) { k++; } } } //输出数据 for (i = 0; i < 4; i++) { printf(" %13s %27s %27s \n", mt[m[i][0] - 1], mt[m[i][1] - 1], mt[m[i][2] - 1]); printf(" %s %s %s \n", title, title, title); for (j = 0; j < 6; j++) { //1,4,7 for (k = 0; k < 7; k++) { if (days[m[i][0] - 1][j][k]) printf("%4d", days[m[i][0] - 1][j][k]); else printf(" "); } printf(" "); //2,5,8 for (k = 0; k < 7; k++) { if (days[m[i][1] - 1][j][k]) printf("%4d", days[m[i][1] - 1][j][k]); else printf(" "); } printf(" "); //3,6,9 for (k = 0; k < 7; k++) { if (days[m[i][2] - 1][j][k]) printf("%4d", days[m[i][2] - 1][j][k]); else printf(" "); } printf("\n"); } } return 0; }
打印格式:
相关推荐
单片机c语言万年历程序 LCD显示 #define uint unsigned int #define uchar unsigned char sbit DS1302_CLK = P3^6; //实时时钟时钟线引脚 sbit DS1302_IO = P3^7; //实时时钟数据线引脚 sbit DS1302_RST = P1^4...
C语言编写的万年历,实现农历,星期算法,界面实现,有节日,万年历,C
本程序利用C语言输出包含农历和阳历的日历,农历显示在阳历下方。此外还可以打印年历,星座查询、历史上的今天等功能。
不错的c语言万年历例子,初学者可以研究下。
功能简介: 1、闰年判断,能够判断该年是闰年还是平年。2、日期查询,输入日期能够判断该日期是星期几及具体信息。3、月历查询,可显示指定日期所在月份的...4、打印整年日历,输入一个年份能够显示出该年的全部月历。
使用C语言编写的万年历,输入年份和月份在屏幕上打印出这一月的日历,包括与之对应的星期数
之前 文章里面所实际用到的 日历文本 以及原始的 日历数据
C语言万年历源码。rar是一个专为计算机专业学生和编程爱好者设计的实用源代码包,它包含了一个用C语言编写的万年历程序。这个程序设计精巧,用户友好,可以查询任何年份的日历信息,包括公历、农历、节假日等。源码...
武汉某校某进才老师C语言期末考,键盘翻页万年历,非常实用
输入一个年份(1-3000),然后显示12个月的月历,如屏幕显示不下,则提供翻页功能,用C语言和VC++6.0实现的
**C语言万年历源码** 本资源提供了一个基于C语言的万年历程序源码,适用于学习、研究...总之,本C语言万年历源码是一个功能丰富、易于定制的实用工具,适合C语言学习者、研究者以及需要进行日历功能开发的开发者使用。
用c语言编写的万年历,可以显示按年输出,按月输出,显示上一年的日历和查询下一年的日历。
本万年历,用C语言编写的,完全符合所有功能。跟手机上的日历功能一样。比他的功能还多。。。。。适合C语言爱好者深度研究
本代码主要实现使用C语言编写简单的万年历,实现功能:用户输入任意一个年月日,输出该年月日对应周几,同时显示出该月的日历
该资源是C语言的源文件,功能是实现公历转化为农历。VC6.0下编译通过的
万年历系统 (1)输入功能:输入全年每个月天数。 (2)计算功能:计算每天对应星期几。 (3)查询功能:按年度显示全年日历对应星期(每行显示2个星期)。
3. 通过对c语言万年历的设计进一步的巩固了用c语言编写程序,并且有利于更好的掌握c语言! 4. 在万年历的编写过程中也体会到了做事情一顶要细心、认真。更加知道了要掌握好基础知识。还有体会到了成功的感觉!在...
一个用C语言写的日历程序!一个用C语言写的日历程序!一个用C语言写的日历程序!一个用C语言写的日历程序!
用C语言编写万年历源程序代码, #include"stdio.h" int judge(int year,int month)/*定义一个函数,把月分为四类(28,29,30,31)*/ { if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) ...