Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C-linux中的时间函数_C_Linux_Function_Time - Fatal编程技术网

C-linux中的时间函数

C-linux中的时间函数,c,linux,function,time,C,Linux,Function,Time,您好,我想知道是否可以编辑时间函数。我的程序是否可以给用户一个重试的时间 struct tm * abc() { char *time_string; time_t curtime; struct tm *loctime; /* Get the current time. */ curtime = time (NULL); /* Convert it to local time representation. */ loctime = localtime (&curtime);

您好,我想知道是否可以编辑时间函数。我的程序是否可以给用户一个重试的时间

struct tm * abc()
{
char *time_string;
time_t curtime;
struct tm *loctime;

/* Get the current time.  */
curtime = time (NULL);

/* Convert it to local time representation.  */
loctime = localtime (&curtime);
return loctime;
}
这将返回当前时间,但我想做的是编辑它以添加值。我这样做的原因是,我可以告诉用户在某个时间使用当前值重试,并在其中添加20分钟。不确定这是不是正确的方法? 谢谢

time()返回一个时间戳,单位为秒(从那时起的秒数),因此您只需添加所需的延迟即可

curtime = time (NULL) + 2*60; // Adds two minutes, 
time()返回一个时间戳(以秒为单位,以秒为单位),因此您可以只添加所需的延迟

curtime = time (NULL) + 2*60; // Adds two minutes, 

在返回之前添加以下行

  localtime->tm_min += 2;
  mktime(localtime);
第一行为localtime增加了两分钟。
第二行将localtime重新规范化为“标准”格式,换句话说,它将把添加的分钟数从(61)等值滚动到(小时+1)、(分钟=1)等值。

在返回之前添加以下行

  localtime->tm_min += 2;
  mktime(localtime);
第一行为localtime增加了两分钟。
第二行将localtime重新规范化为“标准”格式,换句话说,它会将添加的分钟数从(61)这样的值滚动到(小时+1)、(分钟=1)这样的值。

感谢您的帮助,我在发布后找到了一些信息,因此我现在的操作与发布的方法非常类似。Thanks@Edwin:大概你的意思是第一行的
+=
。@Tomalak和@user641902,是的,我打错了。它应该是
tm_min+=2
,而不是
tm_min+2
。感谢您的观察,它在postStill中得到了更正,这似乎是一个OTT解决方案,在您可以在生成时间之前增加UNIX时间戳的整个时间段内都无法实现。它可能在更一般的情况下有用,但不适用于增加两分钟。@Tomalak,今天两分钟,明天一周。哪一个更容易维护?在2038年,你会很高兴你没有完全依赖long。谢谢你的帮助我在发布后找到了一些信息,所以我现在做的与发布的方法非常相似。Thanks@Edwin:大概你的意思是第一行的
+=
。@Tomalak和@user641902,是的,我打错了。它应该是
tm_min+=2
,而不是
tm_min+2
。感谢您的观察,它在postStill中得到了更正,这似乎是一个OTT解决方案,在您可以在生成时间之前增加UNIX时间戳的整个时间段内都无法实现。它可能在更一般的情况下有用,但不适用于增加两分钟。@Tomalak,今天两分钟,明天一周。哪一个更容易维护?到2038年,你会很高兴你没有完全依赖于长线。