mirror of
https://github.com/tiennm99/KTLT.git
synced 2026-08-21 22:00:14 +00:00
194 lines
4.7 KiB
C++
194 lines
4.7 KiB
C++
#include <iostream>
|
|
#include <cstring>
|
|
#include <sstream>
|
|
#include <cstdio>
|
|
|
|
using namespace std;
|
|
|
|
typedef struct
|
|
{
|
|
int d, M, y, h, m, s;
|
|
} time;
|
|
|
|
int main()
|
|
{
|
|
stringstream ss;
|
|
string s;
|
|
int delta_time[6] = {0, 0, 0, 0, 0, 0};
|
|
int days[2][12] = {
|
|
{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
|
|
{31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
|
|
};
|
|
int i, sec, sec1, sec2;
|
|
char c;
|
|
time t1, t2;
|
|
bool b, leap1 = 0, leap2 = 0;
|
|
cout << "Nhap vao 2 thoi gian theo dinh dang dd/MM/yyyy hh:mm:ss" << endl;
|
|
cout << "Nhap vao thoi gian thu nhat: ";
|
|
fflush(stdin);
|
|
getline(cin, s);
|
|
ss << s;
|
|
ss >> t1.d >> c >> t1.M >> c >> t1.y >> t1.h >> c >> t1.m >> c >> t1.s;
|
|
ss.clear();
|
|
cout << "Nhap vao thoi gian thu hai: ";
|
|
fflush(stdin);
|
|
getline(cin, s);
|
|
ss << s;
|
|
ss >> t2.d >> c >> t2.M >> c >> t2.y >> t2.h >> c >> t2.m >> c >> t2.s;
|
|
if ((t1.y%4 == 0 && t1.y%100 != 0) || (t1.y%400 ==0))
|
|
{
|
|
leap1 = 1;
|
|
}
|
|
if ((t2.y%4 == 0 && t2.y%100 != 0) || (t2.y%400 ==0))
|
|
{
|
|
leap2 = 1;
|
|
}
|
|
b = 1;
|
|
if (t1.y > t2.y)
|
|
{
|
|
b = 0;
|
|
}
|
|
else
|
|
{
|
|
if (t1.y == t2.y)
|
|
{
|
|
if (t1.M > t2.M)
|
|
{
|
|
b = 0;
|
|
}
|
|
else
|
|
{
|
|
if (t1.M == t2.M)
|
|
{
|
|
if (t1.d > t2.d)
|
|
{
|
|
b = 0;
|
|
}
|
|
else
|
|
{
|
|
if (t1.d == t2.d)
|
|
{
|
|
if (t1.h > t2.h)
|
|
{
|
|
b = 0;
|
|
}
|
|
else
|
|
{
|
|
if (t1.h == t2.h)
|
|
{
|
|
if (t1.m > t2.m)
|
|
{
|
|
b = 0;
|
|
}
|
|
else
|
|
{
|
|
if (t1.m == t2.m)
|
|
{
|
|
if (t1.s >= t2.s)
|
|
{
|
|
b = 0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (b)
|
|
{
|
|
time t;
|
|
t = t1;
|
|
t1 = t2;
|
|
t2 = t;
|
|
}
|
|
sec = 0;
|
|
for (i = t2.y + 1; i < t1.y; i++)
|
|
{
|
|
if ((i%4 == 0 && i%100 != 0) || (i%400 == 0))
|
|
{
|
|
sec += 366*24*3600;
|
|
}
|
|
else
|
|
{
|
|
sec += 365*24*3600;
|
|
}
|
|
}
|
|
for (i = t2.M + 1; i <= 12; i++)
|
|
{
|
|
sec += days[leap2][i - 1]*24*3600;
|
|
}
|
|
for (i = 1; i < t1.M; i++)
|
|
{
|
|
sec += days[leap1][i - 1]*24*3600;
|
|
}
|
|
for (i = t2.d + 1; i <= days[leap2][t2.M - 1]; i++)
|
|
{
|
|
sec += 24*3600;
|
|
}
|
|
for (i = 1; i < t1.d; i++)
|
|
{
|
|
sec += 24*3600;
|
|
}
|
|
sec1 = t1.h*3600 + t1.m*60 + t1.s;
|
|
sec2 = t2.h*3600 + t2.m*60 + t2.s;
|
|
sec += (sec1 + (24*3600 - sec2));
|
|
if (t1.y == t2.y)
|
|
{
|
|
if (leap1)
|
|
{
|
|
sec -= 366*24*3600;
|
|
}
|
|
else
|
|
{
|
|
sec -= 365*24*3600;
|
|
}
|
|
}
|
|
delta_time[5] = sec%60;
|
|
delta_time[4] = sec/60;
|
|
delta_time[3] = delta_time[4]/60;
|
|
delta_time[4] %= 60;
|
|
delta_time[2] = delta_time[3]/24;
|
|
delta_time[3] %= 24;
|
|
delta_time[1] = delta_time[2]/30;
|
|
delta_time[2] %= 30;
|
|
delta_time[0] = delta_time[1]/12;
|
|
delta_time[1] %= 12;
|
|
cout << "Do lech giay: " << sec << " giay." << endl;
|
|
b = 1;
|
|
cout << "Do lech thoi gian: ";
|
|
if (delta_time[0])
|
|
{
|
|
cout << delta_time[0] << " nam ";
|
|
b = 0;
|
|
}
|
|
if (delta_time[1])
|
|
{
|
|
cout << delta_time[1] << " thang ";
|
|
b = 0;
|
|
}
|
|
if (delta_time[2])
|
|
{
|
|
cout << delta_time[2] << " ngay ";
|
|
b = 0;
|
|
}
|
|
if (delta_time[3])
|
|
{
|
|
cout << delta_time[3] << " gio ";
|
|
b = 0;
|
|
}
|
|
if (delta_time[4])
|
|
{
|
|
cout << delta_time[4] << " phut ";
|
|
b = 0;
|
|
}
|
|
if (delta_time[5] || b)
|
|
{
|
|
cout << delta_time[5] << " giay";
|
|
}
|
|
return 0;
|
|
}
|