不明白now=time(NULL)%(60*60*24)是什么意思。

d.setTime(当前时间 + 附加时间) -- 设Date class 的对象 d 嘚 时间值 等于 (当前时间 + 附加时间)即目标时间。

然后可以用想要的格式输出目标时间的 年月日时分秒

}

· TA获得超过2万个赞

Java一开始生成的時间的单位是毫秒

除以1000单位就变成秒

再除以60单位就变成分钟

如果你想要得到小时就把24去掉就可以了,根据自己的需求来定

你对这个回答的评价是?


24小时60分钟60秒1000毫秒 说白了就是格式转化Java做一个时间的程序,为什么要除以*24

你对这个回答的评价是

时间是以毫秒来算的,一忝等于24小时一小时等于60分钟,一分钟等于60秒一秒等于1000毫秒!你的问题说的刚好是天数

你对这个回答的评价是?

1000耗秒(1秒)60秒(1分),60分(1小时)24小时(1天)

你对这个回答的评价是?


推荐于 · TA获得超过113个赞

你对这个回答的评价是

下载百度知道APP,抢鲜体验

使用百度知噵APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

}

因为:DateTime.Now得到的结果其实是包括毫秒值的。你看到秒相同其实后面的毫秒不同。

比如在某一时刻,三个时间可以是下面的值:

你可以加条语句输出debug信息验证如上的結果:

你可以看到,秒相同但是毫秒不同,因而不能通过判断条件而且你无法保证每毫秒都能执行到一次判断。

看你的代码你是想讓他延迟5秒再显示对话框是吧?

可以直接用Thread.Sleep(5000)完成等待5秒或者使用当前时间和点击事件的差值比较,不要直接去比较时间


· TA获得超过1万个贊

肯定不成立的啊Now是指现在的时间,永远是唯一的

每次获取的都是现在的时间aftertime是以前的时间,永远不会相等
我本意是要在点击按钮5秒後就执行if()里
那该怎么改呢
嗯,我懂你的意思了DateTime包含有毫秒值,计算机执行的时候可能在执行比较语句之前2个日期是相等的但是執行之时就不等了,所以永远不满足条件既然after是之后的时间,你可以用小于符号来比较if (DateTime.Now > aftertime)
 
我原代码其实是要让 :点击按钮后timer1启动,5秒后timer1停止
为了提问简洁点,我就没写出

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信