File indexing completed on 2024-05-12 03:47:27

0001 #include "Time.h"
0002 
0003 namespace DateTime {
0004 qint64 milliseconds(qint64 hour, qint64 minute, qint64 second, qint64 millisecond) {
0005     qint64 value = millisecond;
0006     value += (hour * 3600 + minute * 60 + second) * 1000;
0007     return value;
0008 }
0009 qint64 createValue(qint64 year, qint64 month, qint64 day, qint64 hour, qint64 minute, qint64 second, qint64 millisecond) {
0010     return millisecond + 1000 * (second + 60 * (minute + 60 * (hour + 24 * (day + 30 * (month + 12 * year)))));
0011 }
0012 DateTime dateTime(const qint64 value) {
0013     DateTime dt;
0014     qint64 divisor = qint64(12) * 30 * 24 * 60 * 60 * 1000;
0015     qint64 rest;
0016     dt.year = value / divisor;
0017     rest = value - dt.year * divisor;
0018     divisor = qint64(30) * 24 * 60 * 60 * 1000;
0019     dt.month = rest / divisor;
0020     rest = rest - dt.month * divisor;
0021     divisor = qint64(24) * 60 * 60 * 1000;
0022     dt.day = rest / divisor;
0023     rest = rest - dt.day * divisor;
0024     divisor = qint64(60) * 60 * 1000;
0025     dt.hour = rest / divisor;
0026     rest -= dt.hour * divisor;
0027     divisor = qint64(60) * 1000;
0028     dt.minute = rest / divisor;
0029     rest -= dt.minute * divisor;
0030     divisor = qint64(1000);
0031     dt.second = rest / divisor;
0032     rest -= dt.second * divisor;
0033     dt.millisecond = rest;
0034 
0035     return dt;
0036 }
0037 }