Date_Class/Windows_Date/Date.cpp

179 lines
3.0 KiB
C++

#include "Date.hpp"
using namespace Lenyiin;
// 测试构造析构函数
void TestDate_1()
{
// 默认无参构造
Date d1;
// 默认有参构造
Date d2(2024, 9, 1);
// 拷贝构造
Date d3(d2);
// 测试输出功能
std::cout << "d1 为 " << d1 << std::endl;
std::cout << "d2 为 " << d2 << std::endl;
std::cout << "d3 为 " << d3 << std::endl;
// 赋值拷贝
d1 = d3;
std::cout << "d1 为" << d1 << std::endl;
// 测试闰年闰月
Date d4(2008, 2, 29);
std::cout << "d4 为" << d4 << std::endl;
// 测试日期有效性
Date d5(2007, 2, 29);
std::cout << "d5 为" << d5 << std::endl;
}
// 测试日期比较
void TestDate_2()
{
Date d1(2018, 3, 5);
Date d2(2019, 6, 20);
Date d3(d1);
// 测试 <
if (d1 < d2)
{
std::cout << d1 << " < " << d2 << std::endl;
}
if (d2 < d1)
{
std::cout << d2 << " < " << d1 << std::endl;
}
// 测试 == !=
if (d1 == d3)
{
std::cout << d1 << " == " << d3 << std::endl;
}
else
{
std::cout << d1 << " != " << d3 << std::endl;
}
if (d1 == d2)
{
std::cout << d1 << " == " << d2 << std::endl;
}
else
{
std::cout << d1 << " != " << d2 << std::endl;
}
// 测试 <=
if (d1 <= d2)
{
std::cout << d1 << " <= " << d2 << std::endl;
}
if (d2 <= d1)
{
std::cout << d2 << " <= " << d1 << std::endl;
}
// 测试 >
if (d1 > d2)
{
std::cout << d1 << " > " << d2 << std::endl;
}
if (d2 > d1)
{
std::cout << d2 << " > " << d1 << std::endl;
}
//测试 >=
if (d1 >= d2)
{
std::cout << d1 << " >= " << d2 << std::endl;
}
if (d2 >= d1)
{
std::cout << d2 << " >= " << d1 << std::endl;
}
}
// 测试日期增减
void TestDate_3()
{
Date d1(2024, 9, 2);
// 测试打印函数
d1.Print();
// +
Date d2 = d1 + 100;
// +=
d1 += 100;
d1.Print();
d2.Print();
// -
d2 = d1 - 100;
// -=
d1 -= 100;
d1.Print();
d2.Print();
// += 负数
d2 = d1 + (-100);
d1 += -100;
d1.Print();
d2.Print();
// -= 负数
d2 = d1 - (-100);
d1 -= -100;
d1.Print();
d2.Print();
}
// 计算日期差
void TestDate_4()
{
Date d1(2024, 9, 2);
// 前置 ++ 后置 ++
Date d2 = ++d1;
Date d3 = d1++;
d1.Print();
d2.Print();
d3.Print();
// 前置 -- 后置 --
d2 = --d1;
d3 = d1--;
d1.Print();
d2.Print();
d3.Print();
// 日期差值
Date d4 = d1 + 100;
std::cout << d4 << " - " << d1 << " = " << d4 - d1 << std::endl;
// 日期修改
Date d5(2024, 9, 2);
std::cout << "修改前的 d5 为" << d5 << std::endl;
d5[0] = 2066, d5[1] = 6, d5[2] = 6;
std::cout << "修改后的 d5 为" << d5 << std::endl;
// 测试输入
Date d6;
std::cin >> d6;
std::cout << "d6 为" << d6 << std::endl;
}
int main()
{
//TestDate_1();
//TestDate_2();
//TestDate_3();
TestDate_4();
return 0;
}