C语言“打印日历”的程序是什么?

C语言“打印日历”的程序是什么?,第1张

#include \x0d\x0avoid main() \x0d\x0a{ \x0d\x0aint i,j,k,year,week\x0d\x0aint day[]={31,28,31,30,31,30,31,31,30,31,30,31}\x0d\x0achar month[12][10]={"January","February","March","April","May","June","July","August","September","October","November","December"}\x0d\x0a\x0d\x0aprintf("Input year you want to print:")\x0d\x0ascanf("%d",&year)\x0d\x0a\x0d\x0aif((year%4==0&&year%100!=0)||(year%400==0)) day[1]++//携宏物判断是否闰年辩液\x0d\x0aweek=(35+year+year/4-year/100+year/400)%7//计算绝衡当年的1月1日是周几的公式 \x0d\x0a\x0d\x0afor(i=0i=7) \x0d\x0a{ \x0d\x0aprintf("\n")\x0d\x0aweek=week%7\x0d\x0a} \x0d\x0a} \x0d\x0aprintf("\n")\x0d\x0a} \x0d\x0a}

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[12] ) 

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[temp-1])    //输出,同上

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 

}

/*你好,这个问斗辩弯题我来回答,希望能被采纳:*//*函数功能输出year的日历*/#include<stdio.h>void

main(){int

a,b,c,d,e,f,i,j,k,n,m,yearprintf("input

the

year:\n")

scanf("%d",&year)

//输入数据的初始化;b=yearc=year%4d=year/4e=d*1461+c*365f=e%7j=f

//初始化Year年的第一天的星期m=jprintf("***%d年的日历***\n",year)for(a=1a<=12a++)

//函数的主要部分,主要实现日历的打印部分

{

if(a==1||a==3||a==5||a==7||a==8||a==10||a==12)k=31

else

if(a==4||a==6||a==9||a==11)k=30

else

if((year%4==0&&year%100!=0)||(year%400==0))k=29

else

k=28

printf("%d月份\n

STAT

SUN

MON

TUE

WED

THUR

FRI\n",a)

m=j

if(m<空闷=5)m=m+1

else

m=m-6

for(n=1n<=mn++)printf("

")

for(i=1i<=ki++,j++)

{if(j==7)j=0

if(i<10)printf("

%d"灶败,i)

else

printf("

%d",i)

if(j==5)printf("\n")

}

printf("\n\n\n")

}}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12523499.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存