неделя года, начинающаяся с указанной даты - PullRequest
2 голосов
/ 30 декабря 2011

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

Уже пробовал несколько вещей и не могу понять это ... Спасибо!

ps Возможно, получите разницув днях между двумя датами и разделить на 7?Как бы я это сделал?

Ответы [ 2 ]

2 голосов
/ 30 декабря 2011

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

//Set Given Date to what you want it to be, eg 10th March 2006. (Months are indexed from 0-11)
Calendar calendarGivenDate = Calendar.getInstance();
            calendarGivenDate.set(Calendar.DAY_OF_MONTH, 10);
            calendarGivenDate.set(Calendar.MONTH_OF_YEAR, 2);
            calendarGivenDate.set(Calendar.YEAR, 2006);

//Receive the day of the year for what you previously set
    int givenDateDayOfYear = calendarGivenDate.get(Calendar.DAY_OF_YEAR);

//Receive current day of year
Calendar calendarCurrentDate = Calendar.getInstance();
    int currentDateDayOfYear = calendarCurrentDate.get(Calendar.DAY_OF_YEAR);

//Get difference in number of years
            int currentYear = calendarCurrentDate.get(Calendar.YEAR);
            int givenYear = calendarGivenDate.get(Calendar.YEAR);
            int yearDifference = currentYear - givenYear;


//Find difference, divide by 7 (Round value down to get the difference in whole weeks)
double differenceDays = currentDateDayOfYear - givenDateDayOfYear + (365*yearDifference);
double differenceWeeks = Math.floor(differenceDays / 7);

Не уверен, что моя математика в конце полностью правильная, потому что я просто пытаюсь визуализировать ее в своей голове, но попробовать?Надеюсь, это помогло.

0 голосов
/ 30 декабря 2011

В классе java.util.Calendar есть все методы, необходимые для этого:

Calendar c = Calendar.getInstance();
c.set(year, month, day);
int weekNo = c.get(Calendar.WEEK_OF_YEAR);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...