2011-12-28 6 views
7

Я хочу получить дату начала & дата окончания недели, за неделю число, переданное методу. Например, если я передать номер недели, как 51 и год, как 2011, он должен вернуть мне дату начала как 18 Dec 2011 и конечную дату как 24 Dec 2011Получить начальную и конечную дату недели с номера недели и год в андроиде

Существуют ли какие-либо методы, которые помогут мне достичь этого?

+0

Я пробовал использовать MonthDisplayHelper & JodaTime, но каким-то образом не смог достичь требуемого. Thanx Sunil & Chase .. попробует решение ур и дадут знать – AndroidGuy

ответ

19

Вы можете использовать следующий метод, чтобы получить первую дату и дату конца недели

void getStartEndOFWeek(int enterWeek, int enterYear){ 
//enterWeek is week number 
//enterYear is year 
     Calendar calendar = Calendar.getInstance(); 
     calendar.clear(); 
     calendar.set(Calendar.WEEK_OF_YEAR, enterWeek); 
     calendar.set(Calendar.YEAR, enterYear); 

     SimpleDateFormat formatter = new SimpleDateFormat("ddMMM yyyy"); // PST` 
     Date startDate = calendar.getTime(); 
     String startDateInStr = formatter.format(startDate); 
     System.out.println("...date..."+startDateInStr); 

     calendar.add(Calendar.DATE, 6); 
     Date enddate = calendar.getTime(); 
     String endDaString = formatter.format(enddate); 
     System.out.println("...date..."+endDaString); 
    } 
+0

2015 года, 2016 год придет еще на одну неделю, но 2013,2014 придет точно ... это вопрос високосного года. –

+0

Привет, Камаль, любое решение для выше упомянутый вопрос? – Deva

3

Вы должны использовать java.util.Calendar класс. Вы можете установить год с Calendar.YEAR и неделей года с Calendar.WEEK_OF_YEAR с использованием метода public void set(int field, int value).

Если язык установлен правильно, вы можете использовать setFirstDayOfWeek, чтобы изменить первый день недели. Дата, указанная вашим экземпляром календаря, будет вашей датой начала. Просто добавьте 6 дней для вашей даты окончания.

Calendar calendar = new GregorianCalendar(); 
// Clear the calendar since the default is the current time 
calendar.clear(); 
// Directly set year and week of year 
calendar.set(Calendar.YEAR, 2011); 
calendar.set(Calendar.WEEK_OF_YEAR, 51); 
// Start date for the week 
Date startDate = calendar.getTime(); 
// Add 6 days to reach the last day of the current week 
calendar.add(Calendar.DAY_OF_YEAR, 6); 
// End date for the week 
Date endDate = calendar.getTime(); 
Смежные вопросы