怎样用c语言或数据编写一个程序,编程打印结果是2013年日历,急求!!!!感激不尽!!!!

如题所述

#include <stdio.h>

int FirstDay(int, int); 

int LenOfMonth(int);

int main()

{

int i,flagInput=0; 

int month; 

int day, weekday, daysOfMonth;

for(month=1;month<=12;month++)

{

weekday=FirstDay(2013,month); 

printf("\n\n年份:2013\t");

printf("月份:%6d\n\n", month);

printf("---------------------------------------\n");

printf("SUN   MON   TUE   WED   THU   FRI   SAT\n");

printf("---------------------------------------\n");

for(i=0;i<weekday;i++)  //根据每月第一天是星期几,来决定输出每月前面的空格

printf("%-6c",' ');

daysOfMonth=LenOfMonth(month);   //计算出每月的天数

for(day=1;day<=daysOfMonth;day++)   //根据每月的天数,输出日子

{

printf("%-6d",day);

weekday=(weekday+1)%7;    //计算出当前是星期几,决定判断是否回车

if(weekday==0)    //如果到了周末,则换行

printf("\n");

}

printf("\n");

printf("---------------------------------------\n");

}

return 0; 

}

int LenOfMonth(int month)

{

int dayNumber;    //计算天数

//如果是小月,则 30 天

if(month==4||month==6||month==9||month==11)   

dayNumber=30;

else if(month==2)

dayNumber=28;       //2013年是28天

//其他大月,则 31 天

else

dayNumber=31;

return dayNumber;

}

int FirstDay(int year, int month) 

{

int n=year-1900; 

int i; 

int dayTotal[12]={31,28,31,30,31,30,31,31,30,31,30,31}; 

n=n+(n-1)/4+1; 

n=n%7;

for(i=0;i<month-1;i++)   

n+=dayTotal[i];

if(month!=1)

n%=7; 

return n; 

}


运行结果

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-23
你可以在文库里面搜日历代码,有个是我写的,不懂问我
Int mn;void day(int a, int b,int c){ //日历算法 int d, e, f,k, h,n[13],i;e=((a-1601)/400);h=(e*146097);f=a-1900-e*400;e=(f/100);h=h+36524*e;k=f-100*e;d=(k/4);h=h+d*1461;h=h+(k-4*d)*365; if((a%400)==0||((a%4==0)&&(a%100!=0))){int n[13]={0,31,29,31,30,31,30,31,31,30,31,30,31}; for(i=0;i<b;i++){ h=h+n[i];}x=n[b];if(b>1)x1=n[b-1];} else{ int n[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; for(i=0;i<b;i++){ h=h+n[i];} x=n[b]; if(b>1)x1=n[b-1];} mm=(h+1)%7;}///////////////////////////////////////////////////////////////////////////////////////////////////////////////int main(){int date,monthdate,daydate;inta,b,c,i=0,d,e,k,f,p=0; Cin>>a>>b>>c;Day(a,b,c); /}cout<<"***************************日历***************************"<<endl;cout<<endl;cout<<setw(9)<<"星期日"<<setw(8)<<"星期一"<<setw(8)<<"星期二"<<setw(8)<<"星期三"<<setw(8)<<"星期四"<<setw(8)<<"星期五"<<setw(8)<<"星期六"<<endl;for(i=0;i<(mm%7);i++){ //心情符号及日历的显示cout<<setw(8)<<'\t';p++;}for(i=0;i<x;i++){cout << setw(8)<<i+1;if(p%7==6)cout<<endl;p++;}
第2个回答  2012-12-23
你上源代码网站看一下
第3个回答  2012-12-23
都会发光
第4个回答  2012-12-23
你说的是不是阳历呀,
相似回答