首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

时间差算法解决方法

2012-02-24 
时间差算法要求是给出一个开始时间和一个结束时间时间形式:aa:xx:yy:zza是小时x分钟yszms计算使用时间使用

时间差算法
要求是   给出一个开始时间和一个结束时间   时间形式:   aa:xx:yy:zz
a是小时  
x   分钟
y   s
z   ms
计算使用时间   使用时间的形式也是   上面的方式

[解决办法]
#include <time.h>
#include <sys/time.h>
int main()
{
struct timeval beg,end;
long y=100000000;
gettimeofday(&beg,NULL);
//sleep(5);
while(y--);
gettimeofday(&end,NULL);
long tmp1,tmp2,h,m,s,us;
tmp1=end.tv_sec-beg.tv_sec;
tmp2=end.tv_usec-beg.tv_usec;
if(tmp2 <0)
{
tmp1--;
tmp2+=1*1000000;
}

h=tmp1/3600;
m=(tmp1-3600*h)/60;
s=tmp1%60;
us=tmp2/1000;
printf( "%d:%d:%d:%d\n ",h,m,s,us);
}

[解决办法]
写个结构体,注意一下之间的换算就行了
struct time{
int a;//小时
int x;//分钟
int y;//月
int z;//日
};
struct time time1,time2;
以后就是简单的加减计算,不过要注意之间的借位!!
[解决办法]
是不是要字符串形式作为输入 输出?
[解决办法]
makewater() ( ) 信誉:100 2007-8-10 14:49:40 得分: 0
希望看到一个完整又简单的 --!谢谢了
makewater() ( ) 信誉:100 2007-8-11 12:45:11 得分: 0
恩 谁帮忙写个完整的吧 1l的看不太明白

楼主也太懒了吧?
ls两位兄弟教你了。。

最原始的方法就是取出每一个位,自己做相减运算。。
注意一下进制就可以了
[解决办法]
class Time
{
public:
Time(long _val):value(_val> 0?_val:-_val){}
Time(char const* str=NULL){/*自己想办法转换字符串格式的时间*/}
Time(int hh, int mi, int ss, int ms):value(hh*3600000+mi*60000+ss*1000+ms){}
char* toString(){/*自己想办法转换为字符串*/}
Time operator-(Time const &other){return Time(value-other.value)}
private:
long value; //全部转换为ms存储
};

热点排行