У меня есть работа, которая работает от данного дня до определенного дня недели. Например, с понедельника по субботу. Я был в состоянии закрыть случай, когда stopday> starday для eg-startday-> Monday stopDay-> Saturday , но когда диапазон изменится на что-то вроде среды по понедельник, я не могу осветить этот случай.Как проверить, находится ли день между диапазоном?
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;
}
Эта функция возвращает истину, если день не попадает в range.So как покрыть случай, когда
stopDay < startDay
Я не смотрю на ваш код. Но я предлагаю вам попробовать API-интерфейс joda. У меня много удобных функций для задач, связанных с датой. Chenqui. –
Использует 'JodaTime' вариант? Если это так, вы можете определить «Интервал» и проверить, содержит ли он вашу дату. – Keppil
Вот сообщение, которое расскажет нам, как вы это делаете с Джодой - http://stackoverflow.com/questions/883060/how-can-i-determine-if-a-date-is-between-two-dates- in-java Это очень просто. –