У меня есть номер недели и год, нужно узнать дату (пятница) в эту неделю и год.Получите пятницу с номера недели и года в javascript
function getFriday(week_num, year)
{
?
return friday_date_object;
}
Как это сделать?
У меня есть номер недели и год, нужно узнать дату (пятница) в эту неделю и год.Получите пятницу с номера недели и года в javascript
function getFriday(week_num, year)
{
?
return friday_date_object;
}
Как это сделать?
Неделя № 1 - это неделя с первым четвергом.
Вот функция, чтобы получить в любой день:
var w2date = function(year, wn, dayNb){
var j10 = new Date(year,0,10,12,0,0),
j4 = new Date(year,0,4,12,0,0),
mon1 = j4.getTime() - j10.getDay() * 86400000;
return new Date(mon1 + ((wn - 1) * 7 + dayNb) * 86400000);
};
console.log(w2date(2010, 1, 4));
недели номер начинается на 1 до 52 или 53 не зависит от года.
Для числа суток, 0 - понедельник, 1 - вторник, ... и 4 - пятница
спасибо, этот работает хорошо – Peter
Вот некоторые быстрого кода
var DAY = 86400000;
function getFriday(weekNum, year) {
var year = new Date(year.toString()); // toString first so it parses correctly year numbers
var daysToFriday = (5 - year.getDay()); // Note that this can be also negative
var fridayOfFirstWeek = new Date(year.getTime() + daysToFriday * DAY);
var nthFriday = new Date(fridayOfFirstWeek.getTime() + (7 * (weekNum - 1) * DAY));
return nthFriday;
}
Split некоторые переменные для удобства чтения.
Но если вы обнаружите, что занимаетесь более сложными операциями времени, вам лучше использовать библиотеку.
я думаю, что если я не должен использовать любую библиотеку даты, я бы:
предполагая и использовать в христианской недели, где воскресенье является Фрист день недели. это необходимо, чтобы выяснить, относятся ли первые дни года к первой неделе года или нет.
создать массив. month = new Array (31,28,31, ...) if (year% 4 == 0), тогда февраль имеет 29 дней.
days = num_week * 7;
затем перебирать месяц и уменьшать количество дней в году [текущий]. если дни снова отрицательно увеличиваются с текущими месяцами.
результат: год- (ток + 1) -Days
я надеюсь, что это поможет вам. что вам нужно добавить самостоятельно - это обращение к январю и первым дням.
Високосный год рассчитывается следующим образом: '((год% 4 === 0) && (год% 100! == 0)) || (год% 400 === 0) ' – magikMaker
Действительно ли getDay (day_num, week_num, year) было бы более полезным? – Jim
«Вам нужно преобразовать это в пятницу той конкретной недели»? - Пожалуйста, переформулируйте свой вопрос - сложно сказать, что именно вы просите. – JM4
@Jim day_num всегда 5 (пятница), ваша функция вернет тот же результат, да – Peter