C++判断给定日期是否为闰年
时间: 2024-10-05 21:02:20 浏览: 32
在C++中,判断给定日期是否为闰年通常依据公历规定:普通年份能够被4整除即为闰年,但是每400年中有一个例外,世纪年(即以00结尾的年份)需要同时满足以下两个条件才是闰年:一是能被400整除,二是不能被100整除。下面是常见的判断逻辑:
```cpp
bool isLeapYear(int year) {
// 如果年份能被4整除,但不能被100整除,或者能被400整除
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
int main() {
int input_year;
cin >> input_year;
if (isLeapYear(input_year)) {
cout << input_year << "是闰年" << endl;
} else {
cout << input_year << "不是闰年" << endl;
}
return 0;
}
```
这个函数接受一个整数作为输入年份,通过取余运算符 `%` 来检查是否符合闰年的条件。然后在`main`函数中获取用户输入并调用该函数输出结果。
相关问题
c++编写 定义判断闰年的函数 本题要求实现判断给定年是否为闰年的函数。 函数接口定义: int leapYear (int year); 其中year是传入的整型参数。当year为闰年时,函数返回1;year不是闰年时返回0。
下面是一个使用 C++ 编写的判断闰年的函数:
```c++
#include <iostream>
int leapYear(int year)
{
if (year % 4 == 0) {
if (year % 100 == 0) {
if (year % 400 == 0) {
return 1;
}
return 0;
}
return 1;
}
return 0;
}
int main()
{
int year;
std::cout << "请输入要判断的年份:" << std::endl;
std::cin >> year;
if (leapYear(year)) {
std::cout << year << " 年是闰年" << std::endl;
} else {
std::cout << year << " 年不是闰年" << std::endl;
}
return 0;
}
```
在函数中,我们首先对年份进行了 4、100 和 400 的判断,如果符合这些条件,则该年是闰年,返回1;否则不是闰年,返回0。在主函数中,我们通过输入年份来调用该函数,并根据返回值输出判断结果。
C++定义一个关于日期的类,并在类中定义构造函数、拷贝构造函数和析构函数,然后声明对象,判断该日期是否为闰年并输出
在C++中,我们可以创建一个名为`Date`的类来表示日期,并包含必要的成员变量如年份、月份和日期。同时,我们会定义构造函数、拷贝构造函数以及析构函数。以下是相关的代码示例:
```cpp
#include <iostream>
class Date {
public:
// 构造函数
Date(int year = 0, int month = 1, int day = 1) : year(year), month(month), day(day) {
if (month < 1 || month > 12) {
std::cerr << "Invalid month!" << std::endl;
}
}
// 拷贝构造函数
Date(const Date& other) : year(other.year), month(other.month), day(other.day) {}
// 判断是否为闰年
bool isLeapYear() const {
if (year % 4 != 0) return false; // 年份不是4的倍数直接返回false
else if (year % 100 != 0) return true; // 如果不是世纪年,能被4整除就是闰年
else if (year % 400 != 0) return false; // 否则是世纪年,还要看能否被400整除
else return true;
}
// 析构函数(默认的无操作)
~Date() {}
private:
int year;
int month;
int day;
};
int main() {
// 创建一个Date对象
Date myDate(2024, 2, 29); // 假设是闰年的2月29日
// 输出是否为闰年
std::cout << "Is " << myDate.year << " a leap year? " << (myDate.isLeapYear() ? "Yes" : "No") << std::endl;
// 拷贝一个对象
Date copyDate(myDate);
std::cout << "Copy of the date: " << copyDate.year << "/" << copyDate.month << "/" << copyDate.day << std::endl;
return 0;
}
```
在这个例子中,我们首先定义了`Date`类,包含了构造函数用于初始化年、月、日,拷贝构造函数用于复制已有对象,以及一个`isLeapYear`方法来检查给定的年份是否为闰年。在主函数中,我们创建了一个实例并判断其是否为闰年,同时也展示了如何通过拷贝构造函数创建一个对象。
阅读全文