时间差算法
要求是 给出一个开始时间和一个结束时间 时间形式: 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存储
};