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语言程序介绍的信息。
最后更新于 2023-09-03 16:57:41 并被添加「C语言 万年历 」标签,已有 位童鞋阅读过。
本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处
相关文章