C語言實現萬年曆小功能
阿新 • • 發佈:2020-03-16
本文例項為大家分享了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 };//閏年 int ping[12] = { 31,28,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,day,run,ping); printBegin(); printData(sum,year,month); system("pause"); return 0; }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。