Есть активити с двумя кнопками "<<" и ">>". Также есть Calendar calendar = Calendar.getInstance();
. Как сделать так, чтобы при нажатии на кнопку ">>" в переменные m1
и m2
записывались timestamp
понедельника и воскресенья следующей недели, а когда нажали на кнопку "<<" записались timestamp
понедельника и воскресенья предыдущей недели?
Почему-то ваш код, и код, который по вашей ссылке не совсем то что нужно выдавал. Текущую неделю например выдавал как с 12 по 18 января. Нашел другое решение.
Текущая неделя
private void setWeekCurrent() {
calendar.setTimeZone(TimeZone.getDefault());
calendar.setFirstDayOfWeek(Calendar.MONDAY);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
while(calendar.get(Calendar.DAY_OF_WEEK) != Calendar.MONDAY)
{
calendar.add(Calendar.DATE,-1);
}
txtPeriod.setText(calendar.getTime() + " ");
mills1 = calendar.getTimeInMillis()/1000L;
calendar.add(Calendar.DATE, 6);
txtPeriod.append(" / " + calendar.getTime() + " ");
mills2 = calendar.getTimeInMillis()/1000L;
}
Следующая неделя
private void setWeekNext() {
calendar.setTimeZone(TimeZone.getDefault());
calendar.add(Calendar.WEEK_OF_YEAR, 1);
calendar.setFirstDayOfWeek(Calendar.MONDAY);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
while(calendar.get(Calendar.DAY_OF_WEEK) != Calendar.MONDAY)
{
calendar.add(Calendar.DATE,-1);
}
txtPeriod.setText(calendar.getTime() + " ");
mills1 = calendar.getTimeInMillis()/1000L;
calendar.add(Calendar.DATE, 6);
txtPeriod.append(" / " + calendar.getTime() + " ");
mills2 = calendar.getTimeInMillis()/1000L;
}
Предыдущая неделя
private void setWeekPrev() {
calendar.setTimeZone(TimeZone.getDefault());
calendar.add(Calendar.WEEK_OF_YEAR, -1);
calendar.setFirstDayOfWeek(Calendar.MONDAY);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
while(calendar.get(Calendar.DAY_OF_WEEK) != Calendar.MONDAY)
{
calendar.add(Calendar.DATE,-1);
}
txtPeriod.setText(calendar.getTime() + " ");
mills1 = calendar.getTimeInMillis()/1000L;
calendar.add(Calendar.DATE, 6);
txtPeriod.append(" / " + calendar.getTime() + " ");
mills2 = calendar.getTimeInMillis()/1000L;
}
Можно попробовать так для текущей недели:
SimpleDateFormat displayDate = new SimpleDateFormat("dd-MMM-yyyyy"));
final Calendar calenderThisWeek = Calendar.getInstance();
calenderThisWeek.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
String strWek = displayDate.format(calenderThisWeek.getTime()); // dd-mmm-yyyy
calenderThisWeek.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
String endWek = displayDate.format(calenderThisWeek.getTime()); // dd-mmm-yyyy
так для предыдущей:
final Calendar calenderpreviousWeek = Calendar.getInstance();
calenderpreviousWeek.add(Calendar.DAY_OF_WEEK, -1);
calenderpreviousWeek.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
String strWek = displayDate.format(calenderThisWeek.getTime()); // dd-mmm-yyyy
calenderpreviousWeek.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
String endWek = displayDate.format(calenderpreviousWeek.getTime()); // dd-mmm-yyyy
и для следующей:
final Calendar calenderNextWeek = Calendar.getInstance();
calenderNextWeek.add(Calendar.DAY_OF_WEEK, +1);
calenderNextWeek.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
String strWek = displayDate.format(calenderNextWeek.getTime()); // dd-mmm-yyyy
calenderNextWeek.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
String endWek = displayDate.format(calenderNextWeek.getTime()); // dd-mmm-yyyy
Вот статья где более-менее нормально расписано как решать данную проблему и вопрос_1 / вопрос_2 на enSO
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Столкнулся с такой проблемой, мне нужно чтобы сайт открывался по ip на веб-сервере Apache по порту 8080Всё работает, но
всем приветвозникла небольшая проблема, подскажите, пожалуйста, как исправить