Get computer time c++
我正在使用C ++。 我想获得计算机时间(我知道如何处理ctime功能)。 我想花时间像一个int变量(秒,分钟等)。 有帮助吗?
就像是:
int sec = get.sec();
int min = get.min();
我不想要time_t变量。
-
它可能是特定于操作系统的。
-
看起来你没有做过任何研究。 //作为重复关闭。 链接的问题有一些东西,从纪元以来几秒钟。
-
你用Google搜索c++ time了吗? 第一个链接是(时间)[cplusplus.com/reference/ctime/time/],底部引用了(gmtime)[cplusplus.com/reference/ctime/gmtime/]函数。 看起来tm结构具有您正在寻找的内容。
在C ++ 11中,您可以使用。 您还可以使用time(2),localtime(3),strftime(3),clock(3),clock_gettime(2)(如果您的系统有它们)。 大概
1 2 3 4
| time_t now=0;
time(&now);
char nowbuf[64];
strftime(nowbuf, sizeof(nowbuf),"%c", localtime(now)); |
如果你想要一些字符串可能是相关的。 否则,请注意localtime返回指向struct tm的指针,该指针具有许多数字字段。 例如
1 2 3
| struct tm* lt = localtime(now);
int hours = lt->tm_hour;
int minutes = lt->tm_min; |
当然,原则上你应该测试time,localtime等的失败...(但我从未让这些函数失败)。
细节通常是特定于操作系统的。 如果在Linux上,请阅读时间(7); 一些框架库(如POCO或Qt)可能会在它们之上提供一个通用的(独立于操作系统)抽象。
顺便说一句,您可能或不关心时区,您可能需要gmtime而不是localtime。
-
嗯,是的,但我想要这样的东西:int sec = get.sec(); int min = get.min();
-
现在,必须是一个结构:)
-
什么必须是struct? now(传递给time(&now) ...)定义为time_t now=0;并且是数字类型(我知道的每个系统上的整数类型)。
-
int main(){time_t timer; struct tm y2k; 双秒; y2k.tm_hour = 0; y2k.tm_min = 0; y2k.tm_year = 100; y2k.tm_mon = 0; y2k.tm_mday = 1;时间(安培;计时器); / *获取当前时间; 同样如:timer = time(NULL)* / seconds = difftime(timer,mktime(& y2k)); printf("2000年1月1日以来当前时区的%.f秒",秒); 返回0;}