程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> [C語言練習]萬年歷加強版

[C語言練習]萬年歷加強版

編輯:關於C語言

/**
 * @copyright 2011 Chunhui Wang
 * 
 * [email protected]
*/

#include<stdio.h>

int main()
{
	printf("\t\t\t萬年歷\n");
 	printf("\t\t\t\t------Made by Chunhui Wang\n\n");
	int i,year, month; 
	int day;//記錄每月第一天是周幾。 
	int date;//每年星期變化,平年加1,閏年加2。 
	int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//月份天數 。 
	int Year[10000];//每年第一天周幾。 
	Year[1900]=1;
	for(i=1900;i<9999;i++)
	{
		date=1;
		if((i%4==0)&&(i%100!=0)||(i%400==0))
		{
			date=2;
		}
		Year[i+1]=(Year[i]+date)%7;
	}
		
	while(1)
	{
		printf("請輸入年份(如1900):");
		scanf("%d",&year);
		printf("請輸入月份(如  01):");
		scanf("%d",&month);
		
		
 		a[2]=28;
		if(((year%4==0)&&(year%100!=0)||(year%400==0))&&(month>=2))
		{
			a[2]=29;
		}
		
		day=Year[year];
		for(i=1;i<month;i++)
		{
			day=day+a[i];
		}
		day=day%7;
		
		
		printf("\t\t\t\t%d年%d月份\n\n",year,month);
		printf("\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六\t星期日\n");
		for(i=0;i<day;i++)
		{
			printf("\t");
		}
		if(day==0)printf("\t\t\t\t\t\t\t");

		for(i=0;i<a[month];i++)
		{
			printf("%d\t",i+1);
			if((i+day)%7==0)
			{
				printf("\n\t");
			}
		} 
		printf("\n\n\n\n");
		
	}
	
	return 0;
}

  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved