1. 程式人生 > 程式設計 >C語言實現簡單萬年曆

C語言實現簡單萬年曆

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

#include <stdio.h>
#include<stdlib.h>
int year,month;
int run[12] = { 31,29,31,30,31 };
int ping[12] = { 31,28,31 };
char week[7][10] = { "SUN","MON","TUE","WED","THU","FRI","SAT" };
 
bool IsLeap(int year)
{
 if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) //判斷閏年
 {
 return true;
 }
 else
 {
 return false;
 }
}
void PrintStar()
{
 printf("\t\t\t萬年曆\t\t\t\n");
 printf("****************************************************\n");
 for (int i = 0; i < 7; i++)
 {
 printf("%s\t",week[i]);
 }
 printf("\n");
}
int DaySum(int year,int month)
{
 int sum = 0;
 for (int i = 1990; i < year; i++)
 {
 if (IsLeap(i))
 {
  sum += 366;
 }
 else
 {
  sum += 365;
 }
 }
 for (int i = 0; i < month - 1; i++)
 {
 if (IsLeap(year))
 {
  sum += run[i];
 }
 else
 {
  sum += ping[i];
 }
 }
 return sum;
}
 
void PrintCal(int sum,int year,int month)
{
 int nRes,nTmp;
 nRes = sum % 7+1;//前面空幾格
 nTmp = 7 - nRes;//從第幾格開始列印
 for (int i = 0; i < nRes; i++)
 {
 printf("\t");
 }
 if (IsLeap(year))
 {
 for (int i = 1; i < run[month - 1]+1; i++)
 {
  printf("%d\t",i);
  if (nTmp == i || (i - nTmp) % 7 == 0)
  {
  printf("\n");
  }
 }
 printf("\n");
 }
 else
 {
 for (int i = 1; i < ping[month - 1]+1; i++)
 {
  printf("%d\t",i);
  if (nTmp == i || (i - nTmp) % 7 == 0)
  {
  printf("\n");
  }
 }
 printf("\n");
 }
 
}
int main(void)
{
 while (1)
 {
 scanf_s("%d %d",&year,&month);
 PrintStar();
 PrintCal(DaySum(year,month),year,month);
 printf("****************************************************\n");
 }
 
 return 0;
 
 
}

C語言實現簡單萬年曆

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