C++判断闰年

在玛雅人的纪年方式中:
1 金=1 天
1 兀纳=20 金=20 天
1 盾=18 兀纳=360 天
1 卡盾=20 盾=7200 天
1 伯克盾=20 卡盾=144000 天
根据考古发现,玛雅纪年的结束是 13 伯克盾,即 1872000 天,玛雅纪年的开始是从公元
前 3114 年 8 月 11 日,请写程序计算,哪一天是玛雅纪年的最后一天,输出年/月/日。(闰年
的 2 月有 29 日,闰年的规则是:四年一闰,百年不闰,四百年再闰)
提示:编写多个函数,模拟天数的流失对月、年的影响。可以使用如下的函数原型:
void rollDay(int &year, int &month, int &day);//增加一天,并且可能影响月年
int getDaysInMonth(int year,int month); //得到每个月的天数
int isLeapYear(int year); //判断某年是否是闰年

c++判断是否是闰年代码如下:

#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>

#include<stdlib.h>

int IsLeapYear(int y)

{

return (y%100!=0&&y%4==0)||(y%400 == 0);

}

int main()

{

int year = 0;

printf("请输入需要查询的年份:>");

scanf("%d", &year);

int check = IsLeapYear(year);

if (0 == check)

printf("%d年不是闰年\n",year);

else

printf("%d年是闰年\n",year);

system("pause");

return 0;

}

扩展资料:

C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。

C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。

C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。

语言特点:

1、支持数据封装和数据隐藏;

2、支持继承和重用;

3、支持多态性。

参考资料:

百度百科-C++

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-04-02

下面是后两个函数的实现:

int isLeapYear(int year)
{
if (year % 400 == 0 || (year % 4 == 0 && (year % 100 != 0)))
{
return 1;
}
else
{
return 0;
}
}
int getDaysInMonth(int year,int month)
{
int monthday1[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
int monthday2[12] = { 31,29,31,30,31,30,31,31,30,31,30,31 };
if (isLeapYear(year) == 1)
{
return monthday2[month];
}
else
{
return monthday1[month];
}
}

至于第三个函数有点没明白是要实现什么功能。

对于整个功能的实现方案可以这样做:

先算出公元前3114还剩余的天数,然后算公元前3113年的天数、公元前3112年天数,然后依次向后延伸,将每年的天数进行累加;

如果当前已累加天数与总天数的差值小于365了,再按月累加;

如果当前已累加天数与总天数的差值小于28了,则按天累加;

这样就可以一层一层算出结束的时间了。

最后结果应该是2012年12月21日。

本回答被提问者采纳