开发者

warning to avoid time in future in Java [duplicate]

This question already has an answer here: Closed 12 years ago.

Possible Duplicate:

warning messa开发者_StackOverflow中文版ge/pop out for date/time

I have a form where a user need to enter date and time (2 different fields) and the time cannot be in future. It can either be current time or time in past only to 12 hours before. So I want to add a warning message when the time is older than 12 hours. How will be the calculation of this in Java. Please help me out!


If you want Java this should work. JODA is good, but it is another lib dependency.

` import java.util.Calendar; import junit.framework.TestCase; import static java.lang.System.out;

public class DateCheck extends TestCase { public void testCheckBefore(){ //Gets the current time Calendar c = Calendar.getInstance();

    //Let's make it 13:00 just to make the example simple.
    c.set(Calendar.HOUR_OF_DAY, 13);
    out.println(c.getTime());

    Calendar old = Calendar.getInstance();
    old.set(Calendar.HOUR_OF_DAY, 0);
    if(old.after(c)) {
        throw new IllegalArgumentException("You entered a date in the future");
    }

    assertTrue(olderThanTwelveHours(c, old));

    // Let's change to 5 in the morning.
    old.set(Calendar.HOUR_OF_DAY, 5);
    assertFalse(olderThanTwelveHours(c, old));
}

private boolean olderThanTwelveHours(Calendar c, Calendar old) {
    long startTime= c.getTimeInMillis();
    long oldTime = old.getTimeInMillis();

    long timeDiff = startTime - oldTime;
    if(timeDiff > (12 * 60 * 60 * 1000)) {
        out.println("You're too late");
        return true;
    }
    return false;
}

}`


You are basically wanting to calculate the hours difference between 2 dates. You can easily do that using JodaTime hoursBetween method.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜