本文最后更新于 556 天前,其中的信息可能已经有所发展或是发生改变。
可能存在一定的bug
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <windows.h>
using namespace std;
struct datetime {
int y;
int m;
int d;
int h;
int mm;
int s;
};
//将一个普通的数单位转化为ikun单位,比如4,转化为ikun单位是,1ikun,余下1.5
//余下的会返回,ikun数会赋值给dest。
double to_ikun_unit(int &dest, int &src) {
dest = (int)(src / 2.5);
return src - dest * 2.5;
}
void to_ikun_datetime(struct datetime &result, struct datetime &src) {
// 2018年1月1日0:00是1坤年1坤月1坤日0坤时0坤秒
result = src;
int dy = src.y - 2018;
int dm = (int)(to_ikun_unit(result.y, dy) * 12) + src.m - 1;
result.y += 1;
int dd = (int)(to_ikun_unit(result.m, dm) * 30) + src.d - 1;
result.m += 1;
int dh = (int)(to_ikun_unit(result.d, dd) * 24) + src.h;
result.d += 1;
int dmm = (int)(to_ikun_unit(result.h, dh) * 60) + src.mm;
int ds = (int)(to_ikun_unit(result.mm, dmm) * 60) + src.s;
to_ikun_unit(result.s, ds);
}
int main() {
while(1) {
system("cls");
time_t t = time(0);
struct tm *now = localtime(&t);
struct datetime src;
src.y = now->tm_year + 1900;
src.m = now->tm_mon + 1;
src.d = now->tm_mday;
src.h = now->tm_hour;
src.mm = now->tm_min;
src.s = now->tm_sec;
struct datetime ikun;
to_ikun_datetime(ikun, src);
cout << ikun.y << "坤年" << ikun.m << "坤月"
<< ikun.d << "坤日" << ikun.h << "坤时"
<< ikun.mm << "坤分" << ikun.s << "坤秒";
Sleep(2500);
}
return 0;
}