c语言time(0)转换为当前时间问题。

int t,s,m,h;
t=time(0);
s = t%60;
m = t%3600/60;
h = (t%(3600*24)/3600+8)%24;
time(0)所获得是1970年到现在的时间截。
为什么 时间截60的余数是秒。时间截3600的余数再除以60是分呢

第1个回答  2013-11-10
比如说当前time(0)获得的时间戳是“2013-11-10 18:15:30”的秒数,那么解释如下:
秒:对time(0)取余60的秒数就是当前的秒数,即获得秒数为30秒

分:对time(0)取余3600的秒数就是当前的分钟,此时取余3600结果为:15分钟*60秒+30秒,
若要得到分钟,那么将取余3600的结果除以60即可得出分钟,即获得的分钟数为15
时:对time(0)取余(3600*24),可获得今日零点到当前的秒数,这个秒数化为小时则要除以3600秒
是0时区的小时数,我们北京时间所在的是东8区,所以要加上8个小时(注:比如当前的零时
区时间是19点,加上8个小时就是27,此时想获得北京时间那么就得取余24,此时是北京时
间3点)

希望这么解释能让你明白!本回答被提问者和网友采纳
相似回答