利用printf函数输出日历(C语言编程:输入任意一个年份和月份,按格式输出该月份的公历日历)
本文目录
- C语言编程:输入任意一个年份和月份,按格式输出该月份的公历日历
- C语言日历输出求教
- c语言设计万年历 输入任意年份,输出该年12个月份 输入任意年份月份,输出该年月日历
- 用c语言编写万年历,要求输出任意一年的某月,能显示出这个月的日历
- c语言双行输出日历
- c 语言 输出一个日历表
- 用C语言编写程序打印任意年份的日历
- c语言万年历代码输入年份输出整年日历,输出年份和月份输出某年某月的日历
C语言编程:输入任意一个年份和月份,按格式输出该月份的公历日历
if(month==4||6||9||11) if(month==1||3||5||7||8||10||12)这种写法是错误的。应该这样写 if(month==4||month==6||month==9||month==11) if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)另外,其实你可以不这么写,太多了,可以用switch..caseswitch(month)case 1:case 3:case 5:case 7:case 8:case 10:case 12:day=31;break;case 4:case 6:case 9:case 11:day=30;break;case 2:if()...
C语言日历输出求教
#include 《stdio.h》#include 《windows.h》int main(){ int y,m=1,d,p,n,t,w,k=0,i=1; printf("欢迎使用查询日历输出程序.\n"); printf("请输入查询年份: ");scanf("%d",&y); switch(y%4 == 0) {case 1: {int a={0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};int c={0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335};t = y - 1;p = (t / 4) - ((t / 400) * 3);for(m=1;m《=12;m++){n = (p * 366 + (t - p) * 365 + 1 + c) % 7;w = n + 1;printf("\n\n %d月\n 一 二 三 四 五 六 日\n",m);d = 1;for(k = 1; k 《= n; k++) printf(" ");for(;k《=7;k++) printf("%4d", d++);for(i=1;i《40;i++){if(i%7 ==1) printf("\n");printf("%4d", d++);if(d 》 a) break;}}break;}default: {int a={0,31,28,31,30,31,30,31,31,30,31,30,31};int c={0,31,59,90,120,151,181,212,243,273,304,334};t = y - 1;p = (t / 4) - ((t / 400) * 3);for(m=1;m《=12;m++){n = (p * 366 + (t - p) * 365 + 1 + c) % 7;w = n + 1;printf("\n\n %d月\n 一 二 三 四 五 六 日\n",m);d = 1;for(k = 1; k 《= n; k++) printf(" ");for(;k《=7;k++) printf("%4d", d++);for(i=1;i《40;i++){if(i%7 ==1) printf("\n");printf("%4d", d++);if(d 》 a) break;}}break;}}printf("\n"); system("PAUSE"); return 0;}
c语言设计万年历 输入任意年份,输出该年12个月份 输入任意年份月份,输出该年月日历
程序直接输入年份和月份,打印对应日历。
一年12个月是固定的,我就不写单独输入年份打印月份了。你想就把我月份数组打印一遍好了。
#include《stdio.h》#include《time.h》#include《malloc.h》enum MONTH{January=1,February,March,April,May,June,July,August,September,October,November,December};struct tm * getDate(int year,int mon);void printTime(time_t theTime,int year);int main(){ enum MONTH mon; time_t theTime; struct tm *date; int year,m; while(1) { printf("输入任意年份及月份:\n"); scanf("%d%d",&year,&m); if(m《1 || m》12) { printf("月份超出范围,重新输入!\n"); continue; } mon=m; break; } date=getDate(year,mon); theTime=mktime(date);//从1900年至此的秒数 printTime(theTime,year); return 0;}struct tm * getDate(int year,int mon){ struct tm *date=(struct tm *)malloc(sizeof(struct tm)); date-》tm_sec=0; date-》tm_min=0; date-》tm_hour=0; date-》tm_year=year-1900; date-》tm_mon=mon-1; date-》tm_mday=1; date-》tm_yday=0; return date;};void printTime(time_t theTime,int year){ int y,m,wday,i,j; char wd={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"}; struct tm *date; date =localtime(&theTime); y=date-》tm_year+1900; m=date-》tm_mon+1; wday=date-》tm_wday; printf("\n------------------开始生成日历----------------------\n\n"); printf(" %d年%02d月\n",y,m); i=0; for(j=0;j《7;j++) { printf("%s ",wd); if(wday》6) wday=0; } printf("\n"); while(1) { if(date-》tm_mon+1》m) { printf("\n"); break; } printf(" %02d日 ",date-》tm_mday); if(++i==7) { printf("\n"); i=0; } theTime+=24*60*60; date =localtime(&theTime); }}
用c语言编写万年历,要求输出任意一年的某月,能显示出这个月的日历
1、首先要判断一个年份是闰年还是平年,用一个子程序来做。
2、然后就开始写主程序,首先用scanf得到一个年份。
3、在判断这个年份是平年还是闰年后用printf在CMD中打印出来。
4、在编写完成后,在Notepad++界面下按下F5,弹出输入框。
5、cmd /k gcc -o "$(CURRENT_DIRECTORY)\$(NAME_PART).exe""$(FULL_CURRENT_PATH)" && CLS && "$(CURRENT_DIRECTORY)\$(NAME_PART).exe" & PAUSE & EXIT。在输入框例输入后运行。
6、点击运行,会弹出CMD,在里面输入年份后回车就完成了。
c语言双行输出日历
change to int main and the function call twomouths(i+1,m,begine); syntax error ( should be twomounths ) .#include《stdio.h》/*void*/int main(){ int twomounths(int,int,int,int,int); int countyeardays(int,int,int); int rundays(int); int static m={31,28,31,30,31,30,31,31,30,31,30,31}; int a=1,b,c,y,i,begin,begine; printf("intput the year\n"); scanf("%d",&y); if(y/400==0||(y/4==0&&y/100!=0)) m=29; printf("y年的日历如下:\n"); for(i=0;i《12;i=i+2) b=countyeardays(y,i+1,a)+rundays(y-1)+365*(y-1); c=countyeardays(y,i+2,a)+rundays(y-1)+365*(y-1); begin=b%7; begine=c%7; twomounths(i+1,m,begine);}int twomounths(int m,int mds,int begin,int mdss,int begine){int k,j,kong,konge; printf("%12c%d月%24c%d月\n",’ ’,m,’ ’,m+1); printf("sun mon tue wen thr fri sat sun mon tue wen thr fri sat"); for(kong=0;kong《begin;kong++) printf("%4c",’ ’); for(j=1;j《mds;j++) {printf("%4d",j); begin+=1; if(begin==7) { for(konge=0;konge《begine;konge++) printf("%4c",’ ’); for(k=1;k《7-begine;k++) printf("%4d",k); printf("\n"); } else if(begin==14) {for(k=7-begine;k《14-begine;k++) printf("%4d",k); printf("\n"); } else if(begin==28) {for(k=14-begine;k《28-begine;k++) printf("%4d",k); printf("\n"); } else {for(k=28-begine;k《mdss;k++) printf("%4d",k); printf("\n"); } }}int rundays(int y){int s; s=y/4+y/400-y/100; return(s);}int countyeardays(int y,int m,int d){int i,s=d,c={31,28,31,30,31,30,31,31,30,31,30,31};if(y/400==0||(y/4==0&&y/100!=0))c=29;for(i=0;i《m-1;i++)s+=c;return s;}
c 语言 输出一个日历表
1、功能要求 :1)输入任一年将显示出该年的所有月份日期,对应的星期2)注意闰年情况其显示格式要求如下:1)份:中文英文都可以,2)下一行显示星期,从周日到周六,中英文都可以3)下一行开始显示日期从1号开始,并按其是周几实际情况与上面的星期数垂直对齐2、例程:#include 《stdio.h》 #include《conio.h》 #include《stdlib.h》 int IsLeapYear(int); //声明头文件和函数void main() { int i; int day; int year; int temp; int temp_i; long int Year_days = 0; int Year_Start = 1; int Per_Year_Days; int month_day={31,28,31,30,31,30,31,31,30,31,30,31,29}; //每个月的天数,最后一个是闰年2月printf("Please enter the year: "); scanf("%d",&year); //输入年份while(Year_Start 《 year) //计算从公元1年1月1日到你所查询年份前一年的天数,是为了以后确定这一年的第一天是星期几{ if( IsLeapYear( Year_Start ) ) //确定一年的天数,闰年为366天,一般为365天Per_Year_Days = 366; else Per_Year_Days = 365; Year_days = Year_days + Per_Year_Days; Year_Start++; } for( temp = 1; temp 《=12; temp++ ) //循环输出每个月的日历{ switch( temp ) { case 1: printf(" January(%d)\n",year); //如 January(2008)break; case 2: printf(" February(%d)\n",year); break; case 3: printf(" March(%d)\n",year); break; case 4: printf(" April(%d)\n",year); break; case 5: printf(" May(%d)\n",year); break; case 6: printf(" June(%d)\n",year); break; case 7: printf(" July(%d)\n",year); break; case 8: printf(" August(%d)\n",year); break; case 9: printf(" September(%d)\n",year); break; case 10: printf(" October(%d)\n",year); break; case 11: printf(" November(%d)\n",year); break; case 12: printf(" December(%d)\n",year); break; } i = Year_days % 7; //计算这个月第一天是星期几printf("Mon Tue Wed Thu Fri Sat Sun\n"); if( i != 0 ) for( temp_i = 0; temp_i 《 i; temp_i++) //第一天不是星期一,在前面补空格,本来的空格少了,我加了两个printf(" "); day = 1; if( IsLeapYear(year) && temp == 2) //闰年的2月while( day 《= month_day ) { if( day 》1 ) if( Year_days % 7 == 0 ) //如果不是1号且昨天是星期天,输入回车, 换行 printf("\n"); if( day 》= 10 ) //如果大于或等于10号则输出日期并加2个空格,小于10号输出日期并加3个空格printf("%d ",day); //开始没想到这几行是干嘛用的,只要一个输出就好嘛,后来才想到是用来调整格式的 else //只是他并没有调整好,我做了下修改,现在很整齐了printf("%d ",day); Year_days++; day++; } else //不是闰年2月的while (day 《= month_day) //输出,同上{ if( day 》 1 ) if( Year_days % 7 == 0 ) printf("\n"); if( day 》=10 ) //理由同上printf("%d ",day); else printf("%d ",day); Year_days++; day++; } printf("\n"); if( getch() == ’q’ ) //输入q退出程序exit(0); } getch(); } int IsLeapYear( int year ) //判断是否为闰年{ if ((year %4 == 0) && (year % 100 != 0) || //年份能被4整除且不能被100整除 或者 能被400整除的为闰年(year % 400 == 0) ) return 1; else return 0; }
用C语言编写程序打印任意年份的日历
看要这样不? 下图:
#include 《stdio.h》
#include 《math.h》
#include 《stdlib.h》
int qq(int x,int t)
{
int i=0,p,s=365,y,j,b,k=1,h=1,u=0;
int a;
FILE *fp;
fp=fopen("tai.txt","a+");
i=0;k=1;h=1;u=0;
printf("\t^^^^^^^^^^^^^\t%d年%d月份\t^^^^^^^^^^^^^^^^\n\n",x,t);
fputs("\t^^^^^^^^^^^^^^^^",fp);
fputc(x/1000+48,fp);
fputc(x/100%10+48,fp);
fputc(x/10%10+48,fp);
fputc(x%10+48,fp);
fputs("年",fp);
fputc(t/10+48,fp);
fputc(t%10+48,fp);
fputs("月份^^^^^^^^^^^^^^^^^^^^^^^",fp);
fputs("\n\n",fp);
{for(p=1900;p《=x;p++)
if(p%4==0&&p%100!=0||p%400==0) i++;
if(x%4==0&&x%100!=0||x%400==0) s=i*366+(x-1900-i)*365;
else s=i*366+(x-1900-i)*365+1;
printf("\t日\t一\t二\t三\t四\t五\t六\n");
fputs("\t日\t一\t二\t三\t四\t五\t六\n",fp);
for(i=1;i《=t;i++)
{if(i==2||i==4||i==6||i==8||i==9||i==11) u+=31;
if(i==5||i==7||i==10||i==12) u+=30;
if(i==3){if(x%4==0&&x%100!=0||x%400==0) u+=29;
else u+=28;};
};
for(i=1;i《=12;i++)
{if(i==1||i==3||i==5||i==7||i==8||i==10||i==12) a=31;
if(i==4||i==6||i==9||i==11) a=30;
if(i==2){if(x%4==0&&x%100!=0||x%400==0) a=29;
else a=28;};
};
b=a;
y=(s%7+u)%7;
for(i=1;i《=6;i++)
{
for(j=1;j《=7;j++)
{
if(h《=y) {printf("\t");fputc(’\t’,fp);};
if(h》y) {if(k《=b) {printf("\t%d",k); fputc(’\t’,fp); if (k》9) fputc(k/10+48,fp),fputc(k%10+48,fp) ; else fputc(k+48,fp) ; };
if(k==b+1) {printf("\n");fputc(’\n’,fp);};
k++; };
h++;
};
printf("\n");fputs("\n",fp);
};
};
printf("\t***************************************************\n\n");
fputs("\t***************************************************",fp);
fputs("\n\n",fp);
fclose(fp);
return (0);
}
main()
{
int x,t,q,e,i,c,cc,xx,tt;
float p,pp;
FILE *fp;
if((fp=fopen("tai.txt","w"))==NULL)
{printf("error!");
exit(0);
}
fclose(fp);
do{
printf("请输入你要查询的年份和月份,\n");
printf("输入格式为:“年+空格+月+Enter”。(年份 》=1900)");
printf("(若想显示全年,则输“年+空格+0+Enter”)。比如“2012+空格+0+Enter”)\n");
printf("(若想输出XXXX到xxxx年的全年,则输“年+空格+年+Enter”)。比如“2010+空格+2012+Enter”)\n");
printf("(若想显示xxxx年的前或后x年,则输“年+空格+.x+Enter”)。比如2010的前3年,则输入“2010+空格+“-.3”+Enter”)\n");
printf("(若想显示xxxx年的m月前或后x个月,则输“年+空格+m.x+Enter”)。比如2010的5后3个月,则输入“2010+空格+“+5.3”+Enter”)\n");
scanf("%d%f",&x,&p);
pp=p*10;
c=(int)pp;
cc=c%10;
xx=x;
t=abs((int)p);
tt=t;
if(x《1900) {printf("输入不合要求,请重新输入!!");q=1;}
else if(x》=1900&&(t》0&&t《=12)&&cc==0)//输出指定的年月份。
{ qq(x,t);}
else if(x》=1900&&t==0&&cc==0)//输出指定的整年。
{ for(t=1;t《=12;t++)
qq(x,t);}
else if(x》=1900&&t》=1900)//输出xxxx年到xxxx年的整年。
{ for(i=xx;i《=tt;i++,x++)
for(t=1;t《=12;t++)
qq(x,t);}
else if(x》=1900&&p《1.0&&tt==0)//输出xxxx年的前或后x年。
{
if(cc+x《1900&&tt==0)
printf(" 输入的前年份过多。");
else if(cc》0)
{for(i=0;i《=cc;i++,x++)
for(t=1;t《=12;t++)
qq(x,t);}
else {for(i=cc;i《=0;i++,x--)
for(t=1;t《=12;t++)
qq(x,t);}
}
else if(x》=1900&&t《=12&&t》=1&&cc!=0)//输出xxxx年的m月前或后x个月。“呵呵 你自己想象“让前或后x个月问任何数””
{
if(cc》0)
{for(tt=0;tt《=cc;tt++,t++)
{ if(t》12) qq(x+1,t-12);
else qq(x,t);}}
else{for(tt=0;tt》=cc;tt--,t--)
{ if(t《1) qq(x-1,t+12);
else qq(x,t);}}
}
}
while(q==1);
scanf("%d",&e);
if(e)exit(0);
}
这是我的一个朋友写的!
参考一下!
c语言万年历代码输入年份输出整年日历,输出年份和月份输出某年某月的日历
#include 《stdio.h》 #define YEAR 365 int leap(int year) { int n; n=(year%4==0&&year%4!=0||year%400==0); return(n); } void count(int year, int month) /*基:2000年1月*/ { int i,day,first_day,flag,year1,year2,temp=6; flag=leap(year); year1=year/100; /*相差几百年*/ year2=year%100; /*中间几十年*/ if(year》=2000) /*大于2000年*/ { year1-=20; day=year1/4; /*百闰年数*/ day+=(YEAR+24)*year1+YEAR*year2+(year2-1)/4; /*2000年至现年总天数*/ if(year》2000)day++; /*加上2000年闰年2月的29天*/ switch(month) { case 1:day+=0;break; case 2:day+=31;break; /*加上月份天数*/ case 3:day+=59+flag;break; case 4:day+=90+flag;break; case 5:day+=120+flag;break; case 6:day+=151+flag;break; case 7:day+=181+flag;break; case 8:day+=212+flag;break; case 9:day+=243+flag;break; case 10:day+=273+flag;break; case 11:day+=304+flag;break; case 12:day+=334+flag;break; } day+=temp; /*加上2000年1月1号是星期六*/ first_day=day%7; /*对7取余,为1号星期*/ } else /*以下25行,计算《2000年,算法同上*/ { year1=20-1-year1; year2=100-year2-1; /*倒减,应多减1*/ day=year1/4; day+=36524*year1+365*year2+year2/4; switch(month) { case 12:day+=31;break; case 11:day+=61;break; case 10:day+=92;break; case 9:day+=122;break; case 8:day+=153;break; case 7:day+=184;break; case 6:day+=214;break; case 5:day+=245;break; case 4:day+=275;break; case 3:day+=306;break; case 2:day+=334+flag;break; case 1:day+=365+flag;break; } day-=temp; /*减去1号的6天*/ day=day%7; first_day=(7-day)%7; /*反对称*/ } switch(month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12:month=31;break; case 4: case 6: case 9: case 11:month=30;break; case 2:month=28+flag; } printf(" SUN MON TUE WED THU FRI SAT\n"); for(i=1;i《=4*first_day;i++) /*输出空格*/ printf(" "); for(i=0;i《month;i++) { printf("%4d",i+1); /*输出日历*/ if((first_day+i)%7==6)printf("\n"); } printf("\n"); } void main() { int year,i; printf("please input year :\n"); while(scanf("%d",&year)!=1) { printf("输入错误,请重新输入"); fflush(stdin); } for(i=1;i《13;i++) { printf("month:%d\n",i); count(year,i); } }
更多文章:
matlab计算函数值编程(用matlab编写M文件,计算函数值)
2024年7月22日 09:07
sales manager(销售部经理的英语怎么翻译要区分开Sales Manager)
2024年6月27日 12:51
goto官网(请高手帮忙鉴定一下该网站真伪,多谢了 http://www.gotoread.com)
2024年8月24日 00:00
大唐电力招标网(中国五大电力设计院的网址是中国五大发电集团的招标网址)
2024年7月23日 14:23
datasource 连接池(Tomcat 的数据库连接池设置与应用)
2024年7月20日 03:47
安卓activity软件(android新创建Activity是否需要在Manifest文件中注册如何进行注册)
2024年7月9日 06:22
despair钢琴谱(lookedatherfore despair钢琴谱)
2023年11月23日 22:20
matlab中surf函数(matlab中surf函数的详细用法)
2024年7月14日 05:39
distinctly的形容词形式(请问英语adj与adv的区别是什么)
2024年7月21日 11:46
演示星球ppt模板网站(如何利用几何画板制作“地球”围绕“太阳旋转的课件,并存盘,详细步骤)
2024年7月1日 10:38
construction用英语怎么说(建筑八大员,用英语怎么说)
2024年8月10日 15:05