在sql server中,可以用datediff()函数,取得两个时间的差异,但在JAVA中,有个Calendar类,好像没有这样的函数,是吗?
那个compareTo方法,也只能取得“-1、0、1”这三个值。
现在要写个公司职员出勤的模块,我想取得职员到达的时间之后,对比上班时间的差异(例如迟到了多少小时、多少分钟),应该如何写呢?
那个compareTo方法,也只能取得“-1、0、1”这三个值。
现在要写个公司职员出勤的模块,我想取得职员到达的时间之后,对比上班时间的差异(例如迟到了多少小时、多少分钟),应该如何写呢?
public long getTimeInMillis()返回此 Calendar 的时间值,以毫秒为单位。
import java.text.SimpleDateFormat;
import java.util.*;
public class Snippet
{
public static void main(String[] args) throws Exception
{
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date now = df.parse("2011-03-24 08:30:40");
Date date = df.parse("2011-03-23 07:25:24");
long l = now.getTime() - date.getTime();
long day = l / (24 * 60 * 60 * 1000);
long hour = (l / (60 * 60 * 1000) - day * 24);
long min = ((l / (60 * 1000)) - day * 24 * 60 - hour * 60);
long s = (l / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60);
System.out.println("相差时间为: " + day + "天" + hour + "小时" + min + "分" + s + "秒"); }}
这句我还真没用过 hehe
其实用Calendar类的getTimeInMillis应该是比较“正路”的方法。还有除以1000,应该是在两个时间相减之后就操作了,下面就不用每个值都要除以1000了。
非常感谢。