У меня есть работа, которая длится с определенного дня до определенного дня недели. Например (с понедельника по субботу). Мне удалось охватить случай, когда день остановки> звездный день для eg-startday-> понедельник stopDay-> суббота, но когда диапазон меняется на что-то вроде среды на понедельник, я не могу охватить этот случай.
private boolean isNotWindow(DateTime todayDate) {
final int hr = 3600;
final int min = 60;
int stopDay =
Integer.parseInt(ShipmentTrackingEmailProperties.getInstance().getProperty(
ShipmentTrackingEmailProperties.SHIPMENT_EMAIL_STOP_DAY));
int startDay =
Integer.parseInt(ShipmentTrackingEmailProperties.getInstance().getProperty(
ShipmentTrackingEmailProperties.SHIPMENT_EMAIL_START_DAY));
if(stopDay<startDay)
{
//Not able to figure out??????
}
if (todayDate.getDayOfWeek() >= stopDay) {
String stopTime =
ShipmentTrackingEmailProperties.getInstance().getProperty(ShipmentTrackingEmailProperties.SHIPMENT_EMAIL_STOP_TIME);
String[] array = stopTime.split(":");
System.out.println(array[0] + " " + array[1] + " " + array[2]);
int hh = Integer.parseInt(array[0]);
int mm = Integer.parseInt(array[1]);
int ss = Integer.parseInt(array[2]);
int tSec = todayDate.getHourOfDay() * hr + todayDate.getMinuteOfDay() * min + todayDate.getSecondOfDay();
int sSec = hh * hr + mm * min + ss;
if (tSec > sSec) {
return true;
}
}
if (todayDate.getDayOfWeek() <= startDay) {
String startTime =
ShipmentTrackingEmailProperties.getInstance().getProperty(ShipmentTrackingEmailProperties.SHIPMENT_EMAIL_START_TIME);
String[] array = startTime.split(":");
int hh = Integer.parseInt(array[0]);
int mm = Integer.parseInt(array[1]);
int ss = Integer.parseInt(array[2]);
int tSec = todayDate.getHourOfDay() * hr + todayDate.getMinuteOfDay() * min + todayDate.getSecondOfDay();
int sSec = hh * hr + mm * min + ss;
if (tSec <= sSec) {
LOG.info("Not a valid day to send mail ." + todayDate.getDayOfWeek());
return true;
}
}
LOG.info("Valid day to send mail ." + todayDate.getDayOfWeek());
return false;
}
Эта функция возвращает истину, если день не попадает в диапазон. Итак, как покрыть случай, когда
stopDay ‹startDay
JodaTime
? Если это так, вы можете определитьInterval
и проверить, содержит ли он вашу дату. - person Keppil   schedule 07.02.2014