получить дату начала и окончания недели из номера недели и года в Android - PullRequest
7 голосов
/ 28 декабря 2011

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

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

Ответы [ 2 ]

19 голосов
/ 28 декабря 2011

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

 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);
    }
3 голосов
/ 28 декабря 2011

Вам необходимо использовать класс 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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...