C语言实现万年历小功能

时间:2021-05-20

本文实例为大家分享了C语言实现万年历的具体代码,供大家参考,具体内容如下

一、学了C语言,相信大家都可以做出来。我们要实现的就是用户输入年,月,日。然后打印出来。

二、需要用到的知识点

1.for循环。2.if判断。3.函数的调用

如果您们学了图形库的话,可以贴图上去,效果更加好看。我没有素材,所以,直接用C语言来完成。

三、运行结果

四、我们用C语言代码实现

/************************************************************************* 项目名称:万年历* 项目描述:算法,判断* 项目环境:VS2013* 生成日期:2020-3-8* 作者所属:追梦*************************************************************************/#include<conio.h>#include<stdio.h>#include<stdlib.h>int year, month, day;int run[12] = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };//闰年int ping[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };//平年char weekday[7][10] = { "一", "二", "三", "四", "五", "六", "日" };//星期void printStar()//打印{ printf("**************************************************\n");}void printBegin()//打印抬头{ printf("\t\t万年历\t\n"); printStar(); for (int i = 0; i < 7; i++)//打印星期 { printf("%s\t", weekday[i]); } printf("\n");}//打印下面的日期,判断当前年份是平年还是闰年int leap(int year){ if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)//闰年 return 1; else if (year % 4 == 0 && year % 100 != 0 && year % 400 == 0)//闰年 return 1; else return 0;//平年}//计算year离1900年有多少天int daySum(int year,int month,int day,int run[],int ping[]){ //参照物1900-1-1-星期一(百度) int i, sum = 0; //计算年份天数,闰年+366,平年+365 for( i = 1900; i < year;i++) { if (leap(i) == 1) sum += 366; else sum += 365; } for (i = 0; i < month-1; i++)//计算月份的天数 { if (leap(year) == 1) sum += run[i]; else sum += ping[i]; } return sum;}//打印日历void printData(int sum, int year, int month){ int result, temp, i; //result空格 result = sum % 7;//前面的空格就是余数---->0-6 //当前月份空余的天数,空格表示 for ( i = 0; i < result; i++) { printf("\t"); } temp = 7 - result;//开始打印1号 if (leap(year) == 1) { //数组下标是从0开始,月份从一号开始i=1 for (i = 1; i <= run[month - 1]; i++) { printf("%d\t", i); if (i == temp || (i - temp) % 7 == 0)//换行 printf("\n"); } printf("\n"); } else { for (i = 1; i <= ping[month - 1]; i++) { printf("%d\t", i); if (i == temp || (i - temp) % 7 == 0)//换行 printf("\n"); } printf("\n"); }}int main(){ system("color 2f");//改变黑窗口的颜色 printf("请输入年 月 日:"); scanf("%d%d%d", &year, &month, &day); int sum = daySum(year, month, day, run, ping); printBegin(); printData(sum, year, month); system("pause"); return 0;}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章