C语言万年历程序介绍(C语言实现万年历)

本文给大家介绍万年历的C语言程序,以及用C语言实现万年历的相应知识点。希望对你有帮助,也别忘了收藏这个网站。

这篇文章的列表: 1.用C语言写万年历。 2、C语言编程日历查询程序。 3,C语言设计日历。 4、万年历(C语言编程) 用c语言编写万年历 编写万年历程序,首先需要了解万年历的特点。

以下是万年历的特征(复制和粘贴):

1.平年365天(52周零1天),闰年366天(52周零2天)。平年2月28日,闰年2月29日。

由于1月1日是星期六,3月1日是星期三。——注意这“三”

为了简化算法,该算法以“周”为计算单位。并选择3月1日作为基准月。

2.每400年跳一次,或者每4年跳一次而不是100年。(理由:地球绕太阳一周的时间是365天5小时46秒。为了使一年中的天数为整数,一年中的天数设定为365天,其余时间累加,23小时15分4秒,将近一天。将这一天加到一年的二月,得到29天,这一天称为闰年,其他年份称为平年。但是,四年加一天要多花44分56秒,这个数字是400年后的三天。所以400年只能有97个闰年,所以任何能被400整除或不能被100整除但能被4整除的年份都是闰年。)

因此,百年%4=0闰或(年%4=0且年0)闰。

3.每4年(3个平年,1个闰年)有208周5天——注意这个“5天”。

100 *(208周5天)-1天= 5217周每百年5天-注意这“5天”(整百年暂设为平年)。

每400年有4 *(5217周5天)和1天(400年闰)= 20871周0天——注意这个“0天”和“1天”(4整百年只有一个闰年)。

也就是400年一个周期!(最初的万年历是400年前的一家)

至于日期和星期的对齐,我给你一些思路供参考:每行7天,你可以设置每天占用10个字符(上面的星期也占用10个字符)。假设这个月的第一天是星期四,你需要输出10×3个字符来占据空间,然后输出1。当输出星期日的日期时,将换行,剩下的就简单了。

c语言编程万年历查询程序。 实验名称:万年历的查询和打印

【内容】:设计一个程序查询打印万年历。

[步骤]:

1.

绘制程序流程图;

2.

写程序;

3.

调试程序,分析调试过程中出现的问题,找出错误原因并加以纠正;

4.

通过调试修改写出正确的源程序。

[要求]:

1.

程序运行后,首先在屏幕上显示主菜单:

1.

找出今天是星期几。

2.

查询一年是否是闰年。

3.

打印某一年的日历。

4.

放弃

2.

在主菜单中输入1后,将显示:

请输入年、月、日(XXXX,XX,XX)

运行后的输出:XX,XX,XXXX是第x周,是否继续查询(Y/N)?

如果输入y,它将再次显示。

“请输入年、月、日(XXXX,XX,XX)”,否则返回主菜单。

3.

在主菜单中输入2后,将显示:

“请输入要检查的年份?(XXXX)”

运行后的输出:是(否)在XXXX是闰年。继续查询(是/否)?

如果输入y,它将再次显示。“请输入要检查的年份?(XXXX)”,否则返回主菜单。

4.

在主菜单中输入3后,将显示:

"请输入要打印的年份(XXXX)"

运行后,以下列格式输出XXXX日历:

XXXX

x(月数)

一个

2

S

M

T

W

T

F

S

x

x

x

x

x

x

x

x

x

x

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

x(月数)

一个

2

S

M

T

W

T

F

S

x

x

x

x

x

x

x

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

xx

"您想继续打印吗(是/否)?"运行后会显示。

如果输入y,将再次显示“请输入要打印的年份(XXXX)”,否则将返回主菜单。

5.

在主菜单中输入4后,显示:“您真的要退出吗(Y/N)?”

如果输入y,结束程序运行,否则主菜单将再次显示。

[提示]:

1.

闰年计算:闰年满足以下两个要求之一:

能被4整除,但不能被100整除;

能被4整除,也能被400整除。

闰年的二月是29天,平年的二月是28天。

3.星期几的计算:

s = X-1(X-1)/4(X-1)/100(X-1)/400 C

x是年份,C是从元旦到今天的天数。

S/7的余数不仅仅是周数。

例1:1982年12月26日

由于1982年不是闰年(不能被4整除),所以当年的2月是28天。

c = 31 28 31 30 31 30 31 31 30 31 30 31 31 30 31 30 26 = 360

(1月至11月的天数+12月的实际天数)

s = 1982-1(1982-1)/4(1982-1)/100(1982-1)/400 360 = 2821.3925

S/7=2821/7=403

余数是0,所以这一天是星期天。

例2:2000年3月8日

由于2000年是闰年(可被4、100、400整除),那一年的2月是29天。

C=31 29 8=68

(1月至2月的天数+3月的实际天数)

s = 2000-1(2000-1)/4(2000-1)/100(2000-1)/400 68 = 2551.757

S/7=2551/7=364

余数是3,所以这一天是星期三。

c语言设计日历 /*但是没有关于一年中某一天的查询。。而且判断今年的生肖,可以满足你的要求。

加点金币帮你完善!*/

# includestdio.h

(同Internationalorganizations)国际组织

瑞士(int

年)

//判断是否是闰年。

{

如果(!(Years0))

{

年数=年数/100;

}

如果(年%4)

{

返回

0;

}

其他

{

返回

1;

}

}

(同Internationalorganizations)国际组织

数字(整数

国际年a

年b)

//给定两年,求两者之间的闰年数。

{

(同Internationalorganizations)国际组织

I =年a 1;

(同Internationalorganizations)国际组织

mou = 0;

做{

if(瑞士(I))

{

牟;

}

我;

} while(iYearsb);

返回

牟;

}

(同Internationalorganizations)国际组织

Mvalue(int

整数年

月,整数

日)

//知道年、月、日,找出星期几。

{

(同Internationalorganizations)国际组织

M[12]={0,3,3,6,1,4,6,2,5,0,3,5 };

//月值

(同Internationalorganizations)国际组织

n = 6;

//初始化年度值

(同Internationalorganizations)国际组织

a;

如果(2006年)

//求年值,以2006年为基准。

{

N=6-((2006年)% 7)-数量(年,2006年);

如果(瑞士(年))

{

如果(第三个月)

{

n-;

}

}

}

其他

如果(2006年)

{

N=((年-2006)%7)-1数(2006,年);

如果(瑞士(年))

{

如果(第二个月)

{

n;

}

}

}

a=(第M天[月-1日]N)% 7;

//星期几=(日值,月值,年值)%7

返回

a;

}

(同Internationalorganizations)国际组织

Amonth(int

月)

//给定月份,找出这个月是大月份还是小月份。

{

开关(月)

{

情况

1:

情况

3:

情况

5:

情况

7:

情况

8:

情况

10:

//1、3、5、7、8、10、12是大月份,没有31天的月份。

情况

12:返回

1;

情况

4:

情况

6:

情况

9:

情况

11:返回

0;

//4、6、9、11为流产,每月30天。

情况

2:退货

2;

//二月

}

返回

-1;

}

空的

主要的

()

{

(同Internationalorganizations)国际组织

数据表[7][7];

(同Internationalorganizations)国际组织

I,j;

(同Internationalorganizations)国际组织

年= 9999;

(同Internationalorganizations)国际组织

月= 12;

(同Internationalorganizations)国际组织

day = 1;

(同Internationalorganizations)国际组织

b;

for(I = 0;i7;我)

//初始化数组

{

dtable[0][I]= I;

}

for(I = 1;i7;我)

{

for(j = 0;j7;j)

{

dtable[I][j]= 0;

}

}

i=Mvalue(年、月、日);

开关(月)

{

情况

0:b = 30;打破;

情况

1:b = 31;打破;

情况

2:if(瑞士(年))b = 29其他

b = 28打破;

//闰年2月29日,平年2月28日。

默认值:b =-1;打破;

}

for(;i7;我)

{

dtable[1][I]= Day;

}

for(I = 2;i7;我)

{

for(j = 0;j7;j)

//建立日历

{

if(Day=b)

{

d table[I][j]=日;

}

其他

{

继续;

}

}

}

printf("%d:%d\n ",年,月);

for(I = 0;i7;我)

//输出日历表

{

for(j = 0;j7;j)

{

printf("= ",Dtable[I][j]);

}

printf(" \ n ");

}

getch();

//结束!

}

万年历(C语言编程) # includestdio.h

#includetime.h

Int leap (int year)//判断闰年

{

if(year%4==0year0!= 0 | |年@0==0)

返回1;

否则返回0;

}

Intdays _ month (int month,int year)//判断月

{

if(月= = 1 | |月= = 3 | |月= = 5 | |月= = 7 | |月= = 8 | |月= = 10 | |月==12)

返回31;

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

返回30;

if(month==2leap(year)==1)返回29;

否则返回28;

}

Int first day (int month,int year)//判断年

{

int w;

w =(1 2 *月3*(月1)/5年年/4年/400年/100)% 7 1;

返回w;

}

主()

{

//调用系统时间

time _ t tval

struct tm * now

tval =时间(空);

now = local time(tval);

Printf("当前时间:m年%d月d日% d: d \ n ",now-TM _ year1900,now-TM _ mon1,now-TM _ mday,

now-tm_hour,now-tm_min,now-TM _ sec);

//通话结束

int i,j=1,k=1,a,b,月,年;

b=days_month(now-tm_mon 1,now-TM _ year 1900);

a=firstday (now-tm_mon 1,now-TM _ year 1900);

printf("周日周一周二周三周四Fri周六\ n ");

如果(a==7)

{

for(I = 1;I = b;我)

{

printf("M ",I);

如果(i%7==0)

{

printf(" \ n ");

}

}

}

如果(a!=7)

{

而(j=4*a)

{

printf(" ");

j;

}

for(I = 1;I = b;我)

{

printf("M ",I);

如果(i==7*k-a)

{

printf(" \ n ");

k;

}

}

}

printf(" \ n ");

}

万年历C语言程序介绍到此为止。感谢您花时间阅读本网站的内容。不要忘记在这个站点搜索更多关于用C语言实现万年历和万年历C语言程序介绍的信息。

相关文章

发表新评论