如何计算两天相隔的时间差?

哈哈gogo 2009-07-16 10:12:27
不用函数,我想要公式
比如今天晚上20:00到明天早上6:00之间相差多少小时或相差多少小时多少分,我知道有函数可以算的,但我想知道这是怎么算的?
...全文
611 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangsw1991 2010-12-30
  • 打赏
  • 举报
回复
(time1-time2+24)%24+(相差天数-1)*24
yuanchangyuan2125 2009-07-22
  • 打赏
  • 举报
回复
学习分享
pc144818 2009-07-21
  • 打赏
  • 举报
回复
先把时间都算成秒!! 再精细的可以算到毫秒!!
然后计算好了之后 再算回去 不就得了么?
morilasi 2009-07-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 jay_2008 的回复:]
那如何再转成时间格式呢,
给个具体的算法吧。

[/Quote]
直接有API,不用算法。你看看ctime
哈哈gogo 2009-07-18
  • 打赏
  • 举报
回复
那如何再转成时间格式呢,
给个具体的算法吧。
大川101 2009-07-18
  • 打赏
  • 举报
回复
学习了
哈哈gogo 2009-07-18
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 hairetz 的回复:]
想偷懒就直接用API把日期转为秒数,然后相减即可。
[/Quote]
那如何再转回时间呢。
pigniyan 2009-07-18
  • 打赏
  • 举报
回复
#include<stdio.h>
#include<dos.h>
int main()
{
struct time t;
gettime(&t);
printf("the current time:%d-%d-%d",t.ti_hour,t.ti_min,t.ti_sec);
getch();
return 0;
}
这是输出当前的时间,你要计算第二天早上到现在的时间差在这个基础上改动一下就可以了
  • 打赏
  • 举报
回复
想偷懒就直接用API把日期转为秒数,然后相减即可。
tanwan 2009-07-18
  • 打赏
  • 举报
回复
后一天先转成前一天的0:0:0然后在把前一天的也转成0:0:0用秒表示,然后相减...
接着对60取余得到的是秒,然后对60整除为秒,然后其他为分钟,在对分钟对60取余就全部是分钟,在对60进行整除得到的结果全部是小时...

#include<stdio.h>
#define OD 86400
void main()
{
int todayn,todaym,todays;
int tomn,tomm,toms;
int sumtd,tomr,sum;
scanf("%d:%d:%d",&tomn,&tomm,&toms);
scanf("%d:%d:%d",&todayn,&todaym,&todays);
sumtd=tomr=0;
tomr=tomn*3600+tomm*60+toms;
sumtd=OD+todayn*3600+todaym*60+todays;
sum=sumtd-tomr;
printf("秒:%d\n",sum%60);
sum=sum/60;
printf("分:%d\n",sum%60);
printf("小时:%d\n",sum/60);
}

不知道这样是否满足LZ的需要
morilasi 2009-07-17
  • 打赏
  • 举报
回复
转成秒,然后一减就是了。
fire_woods 2009-07-17
  • 打赏
  • 举报
回复
CTime类好像是都先算到19XX年0月0日0点0分0秒的.
哈哈gogo 2009-07-16
  • 打赏
  • 举报
回复
想知道那想函数都是怎么算的。
那如果是晚上20:26到早上6:29呢,也可以这样算吗?
df274119386 2009-07-16
  • 打赏
  • 举报
回复
好象用减法就可以了
6+24-20=10 相差10个小时

10*60 = 600 分钟

可以这样算吗

33,027

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧