1. 程式人生 > 程式設計 >C語言實現萬年曆小功能

C語言實現萬年曆小功能

本文例項為大家分享了C語言實現萬年曆的具體程式碼,供大家參考,具體內容如下

一、學了C語言,相信大家都可以做出來。我們要實現的就是使用者輸入年,月,日。然後打印出來。

二、需要用到的知識點

1.for迴圈。2.if判斷。3.函式的呼叫

如果您們學了圖形庫的話,可以貼圖上去,效果更加好看。我沒有素材,所以,直接用C語言來完成。

三、執行結果

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;
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。