среда, сентября 20, 2006

Тыщу лет таму назад...

Во фантазия у народа :)
...
private Date translateDateAfter(String strValue) {
int value = Integer.parseInt(strValue);
Date returnDate = null;
long secondsInMonth = 2592000; // number of seconds in a month

Calendar today = Calendar.getInstance();
today.set(Calendar.HOUR_OF_DAY, 0);
today.set(Calendar.MINUTE, 0);
today.set(Calendar.SECOND, 0);

switch (value) {
case StaticsDataManager.TODAY: {
returnDate = today.getTime();
break;
}
case StaticsDataManager.PREVIOUS_DAY: {
int dayOfWeek = today.get(Calendar.DAY_OF_WEEK);

if (dayOfWeek == Calendar.MONDAY)
today.add(Calendar.DAY_OF_YEAR, -3);
else if (dayOfWeek == Calendar.SUNDAY)
today.add(Calendar.DAY_OF_YEAR, -2);
else
today.add(Calendar.DAY_OF_YEAR, -1);

returnDate = today.getTime();
break;
}
case StaticsDataManager.LAST_ONE_MONTH: {
returnDate = new Date(System.currentTimeMillis()
- (secondsInMonth * 1000));
break;
}
case StaticsDataManager.LAST_THREE_MONTH: {
returnDate = new Date(System.currentTimeMillis()
- (secondsInMonth * 1000 * 3));
break;
}
case StaticsDataManager.LAST_SIX_MONTH: {
returnDate = new Date(System.currentTimeMillis()
- (secondsInMonth * 1000 * 6));
break;
}
case StaticsDataManager.ALL: {
returnDate = new Date(System.currentTimeMillis()
- (secondsInMonth * 1000 * 1000));
break;
}
}

log.info("After Date = " + returnDate);

return returnDate;
}

1 комментарий:

Unknown комментирует...

Особенно порадовало.

..........
case StaticsDataManager.ALL: {
returnDate = new Date(System.currentTimeMillis()
- (secondsInMonth * 1000 * 1000));
break;
}
.....


Т.е. ALL - это когда 1000 месяцев назад, следовательно код перестанет работать 1000/12 = 83.3(3) - т.е спросить уже будет неского...