Я предпочел использовать joda time api.Расчет продолжительности довольно прост.У меня есть проблема, чтобы поставить условие для проверки со всеми вышеупомянутыми 3 условиями.Кажется, что если какое-то условие, которое я поставил в своей программе, не подходит.
import org.joda.time.DateTime;
import org.joda.time.Period;
class Test {
public static void main(String[] args) {
DateTime d1 = new DateTime(2011, 1, 1, 0, 0, 0, 0);
DateTime d2 = new DateTime(2012, 1, 1, 0, 0, 0, 0);
Period p1 = new Period(d1, d2);
if(p1.getYears()==1 && p1.getMonths()==0 &&
(p1.getDays()<5||p1.getDays()>5)){
System.out.println("Hello");
}else{
System.out.println("Hi");
}
}
}
Вот моя программа, которая соответствует моим ожиданиям -
import org.joda.time.DateTime;
class Test {
public static void main(String[] args) {
DateTime d1 = new DateTime(2011, 1, 1, 0, 0, 0, 0);
DateTime d2 = new DateTime(2012, 1, 1, 0, 0, 0, 0);
DateTime start=d1.plusYears(1).minusDays(5);
DateTime end=d1.plusYears(1).plusDays(5);
if(d2.isBefore(start)||d2.isAfter(end)){
System.out.println("HI");
}else{
System.out.println("HELLO");
}
}
}