如何在C编程中制作小时,分钟偏移标志

时间:2015-11-04 02:19:30

标签: c unix datetimeoffset

我在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,但这不起作用。有人能指出我在正确的方向吗?

2 个答案:

答案 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