获取时间差

public static String sjc(long t1, long t2)
	{
		long t3 = t1 - t2;

		long hour = t3 / (60 * 60 * 1000);
		long minute = (t3 - hour * 60 * 60 * 1000) / (60 * 1000);
		long second = (t3 - hour * 60 * 60 * 1000 - minute * 60 * 1000) / 1000;
		long millisecond = t3 - hour * 60 * 60 * 1000 - minute * 60 * 1000
				- second * 1000;

		if (millisecond > 1000)
		{
			second += millisecond / 1000;
			millisecond = millisecond % 1000;
		}
		if (second > 60)
		{
			minute += second / 60;
			second = second % 60;
		}
		if (minute > 60)
		{
			hour += minute / 60;
			minute = minute % 60;
		}

		String sh = "";
		String sm = "";
		String ss = "";
		
		if (hour < 10)
		{
			sh = "0" + String.valueOf(hour);
		}
		else
		{
			sh = String.valueOf(hour);
		}
		
		if (minute < 10)
		{
			sm = "0" + String.valueOf(minute);
		}
		else
		{
			sm = String.valueOf(minute);
		}
		
		if (second < 10)
		{
			ss = "0" + String.valueOf(second);
		}
		else
		{
			ss = String.valueOf(second);
		}

		return null;
	}


在 C/C++ 中,`gettimeofday` 是一个常用的系统调用(主要在 Linux 和类 Unix 系统中),用于获取当前时间(精确到微秒)。你可以使用它来计算两个时间点之间的时间差,常用于性能测试或测量代码执行耗时。 下面是一个使用 `gettimeofday` 获取时间差的完整示例: ```c #include <stdio.h> #include <sys/time.h> // 计算时间差(单位:微秒) long long time_diff(struct timeval *start, struct timeval *end) { return (end->tv_sec - start->tv_sec) * 1000000LL + (end->tv_usec - start->tv_usec); } int main() { struct timeval start, end; long long diff; // 获取开始时间 gettimeofday(&start, NULL); // 模拟一段耗时操作 for (int i = 0; i < 1000000; i++) { // 空循环,模拟工作 } // 获取结束时间 gettimeofday(&end, NULL); // 计算时间差(微秒) diff = time_diff(&start, &end); printf("Time elapsed: %lld microseconds\n", diff); printf("Time elapsed: %.6f seconds\n", diff / 1000000.0); return 0; } ``` ### 解释: - `struct timeval` 包含两个字段: - `tv_sec`:秒 - `tv_usec`:微秒(1秒 = 1,000,000 微秒) - `gettimeofday(&tv, NULL)` 获取当前时间,填充 `timeval` 结构。 - `time_diff()` 函数计算两个时间点之间的微秒差,注意要处理跨秒的情况。 - 最终输出可以是微秒或转换为秒(除以 1e6)。 > ⚠️ 注意:`gettimeofday` 已被标记为过时(在某些新系统中建议使用 `clock_gettime`),但它仍然广泛可用且便携性好。 --- 如果你想用更现代、更高精度的方式(如纳秒级),推荐使用 `clock_gettime(CLOCK_MONOTONIC, ...)`,但 `gettimeofday` 对于大多数用途已经足够。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值