Тыщу лет таму назад...
Во фантазия у народа :)
...
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;
}
среда, сентября 20, 2006
Подписаться на:
Комментарии к сообщению (Atom)
1 комментарий:
Особенно порадовало.
..........
case StaticsDataManager.ALL: {
returnDate = new Date(System.currentTimeMillis()
- (secondsInMonth * 1000 * 1000));
break;
}
.....
Т.е. ALL - это когда 1000 месяцев назад, следовательно код перестанет работать 1000/12 = 83.3(3) - т.е спросить уже будет неского...
Отправить комментарий