我在Unix上使用C语言。程序显示时间,我试图找出如何以分钟和小时来抵消当前时间。
这部分代码
while ( ( let = getopt(argc, argv, "alo:vh")) != -1 ) {
switch (let) {
case 'o': offset = atoi(optarg); break; }
以及后半部分:
void clock(int sig, int time_expires)
{
time_t now;
struct tm *dateinfo;
(void) time(&now);
now = now + offset;
dateinfo = localtime( &now ); }
制作-o偏移量,将当前时间偏移一定的秒数。例如,-o590会将当前时间偏移590秒。
我试图找出如何做同样的事情只有一个-h标志将时间偏移一定的小时数(比如-h6将时间偏移6小时)或者通过-m标志偏移分钟的时间。
我已经尝试将当前-o标志除以60或360,但这不起作用。有人能指出我在正确的方向吗?
答案 0 :(得分:1)
以便携式方式将<{1}}更改为如此多的小时,分钟,秒 依赖于time_t
是一些整数类型的秒自1970年以来,使用time_t
mktime()
答案 1 :(得分:0)
./bootstrap --system-curl
make
sudo make install
结构定义自1970年1月1日UTC以来的秒数。
如果您想添加n分钟,您应该这样做:
time_t
n小时你应该:
now+= n*60
或者,您可以使用now+= n*3600
并直接访问您要修改的时间量。
struct tm