如何将Le年考虑在内,以减去两个输入的日期(年,月,日)

时间:2019-03-16 00:13:15

标签: c++ date time

我一直在尝试找出如何在C ++中准确地从另一个日期中减去一个日期。两者都将通过用户输入来接收。我以为通过创建一个类以及使用<ctime>,我可以做到这一点,但是我还没有找到如何在考虑Le年的情况下做到这一点的方法,这就是可能会失去准确性。

这是我执行任务的方式:

#include "pch.h"
#include <iostream>
#include <ctime>
using namespace std;

class Year {
private:
    struct tm date3;
    struct tm date2;
    struct tm date;
    int FirstYear, SecondYear;
    int FirstMonth, SecondMonth;
    int FirstDay, SecondDay;

public:
    int DateCalculus(struct tm* date, struct tm* date2);
    void ResultShown();
};

int Year::DateCalculus(struct tm* date, struct tm* date2) {
    struct tm date3;
    date3.tm_year = date->tm_year - date2->tm_year;

    date3.tm_mon = date->tm_mon - date2->tm_mon;
    date3.tm_mday = date->tm_mday - date2->tm_mday;
}

void Year::ResultShown() {
    cout<< date3;
}

int main() {

    struct tm Date = { 0, 0, 12 };  
    struct tm Date2 = { 0, 0, 12 };
    int Firstyear, SecondYear;
    int Firstmonth, SecondMonth;  
    int Firstday, SecondDay;

    cin >> Firstday; cout << "Day 1 " << endl;
    cin >> Firstmonth; cout << "Month 1 " << endl;
    cin >> Firstyear; cout << "Year 1 " << endl;
    cin >> SecondDay; cout << "Day 2 " << endl;
    cin >> SecondMonth; cout << "Month 2 " << endl;
    cin >> SecondYear; cout << "Year 2 " << endl;
    Date.tm_year = Firstyear;
    Date.tm_mon = Firstmonth;  
    Date.tm_mday = Firstday;   

    Year::DateCalculus(&Date, &Date2);

    cout << asctime(&Date2) << std::endl;

    return 0;
}

0 个答案:

没有答案