Мне нужно указать дату начала недели. Выбрав эту неделю (28-12-2015), я получаю «29-12-2014» в качестве даты начала, потому что она рассчитывается на основе недели и года. Сегодняшняя (28-12-2015) неделя я получаю как 1-я неделя. Мне нужно получить последнюю неделю года с датой «27-12-2015» в качестве даты начала.Как получить неделю по дате в java?
Вот мой код:
public Date getStartDate()
{
int weekNo = findWeekOfTheYear(new Date());
int year = findYear();
startDate = findStartDateUsingWeekAndYear(year, weekNo);
return startDate;
}
public int findYear()
{
Calendar calendar = new GregorianCalendar();
int year= calendar.get(Calendar.YEAR);
return year;
}
public int findWeekOfTheYear(Date date)
{
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int weekOfMonth= calendar.get(Calendar.WEEK_OF_YEAR);
return weekOfMonth;
}
public Date findStartDateUsingWeekAndYear(int year,int week)
{
Calendar calendar = Calendar.getInstance();
calendar.clear();
calendar.set(Calendar.WEEK_OF_YEAR, week);
calendar.set(Calendar.YEAR, year);
// Now get the first day of week.
Date date = calendar.getTime();
return date;
}
Любая помощь?
Ваш вопрос немного неясно. Каков ваш вклад, каков ожидаемый результат, что он дает вместо этого? Просьба привести дополнительные примеры, которые не совпадают в конце года, если вы считаете, что конец года может быть проблемой здесь. – RealSkeptic
@RealSkeptic Input - это сегодняшняя дата. Сохраняя эту дату ввода, мне нужно получить неделю. Например: Сегодня 28-12-2015.Я ожидаю, что неделя будет 53, но я получаю 1. – 0991
Пожалуйста, найдите StackOverflow перед публикацией. Эта тема была рассмотрена много раз. –