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年,你会很高兴你没有完全依赖于长线。