var week = ['понедельник',
'вторник',
'среда',
'четверг',
'пятница',
'суббота',
'воскресенье']
var getDayOfWeek = function(firstDay, findNumberDay) {
var dayOfNumber = (week[(week.indexOf(firstDay) + findNumberDay - 1) % 7])
return dayOfNumber
}
спасибо! Сейчас сяду разбираться
Мне кажется я замудрённо написал решение.
Может кто-то подскажет ревью.
Сводка
var getDayOfWeek = function (firstDayInMonth, searchDay) {
var dayWeek = [“понедельник”,“вторник”,“среда”,“четверг”,“пятница”,“суббота”,“воскресенье”];
var firstDayIndex = 0;
var result = “”;
for(var i = dayWeek.length; i > 0; i–){
if(firstDayInMonth === dayWeek[i])
firstDayIndex = i - 1;
}
var indexSearchDay = (searchDay % dayWeek.length) + firstDayIndex;
result = dayWeek[indexSearchDay];
return result;
}
У меня получилось так:
var getDayOfWeek=function(day, number){
var dayWeek=[‘понедельник’, ‘вторник’, ‘среда’, ‘четверг’, ‘пятница’, ‘суббота’, ‘воскресенье’];
var indexDayFirst=dayWeek.indexOf(day);
var indexDay=number%7+indexDayFirst-1;
if (indexDay>6){
var dayNumber=dayWeek[indexDay%6];
}
else {
var dayNumber=dayWeek[indexDay];
}
return dayNumber;
}
Получилась такая вот картина. Приглашаю оценить и прокомментировать, что можно улучшить или сократить. К названиям переменных, просьба, не придираться))
var daysOfWeek = [‘понедельник’, ‘вторник’, ‘среда’, ‘четверг’, ‘пятница’, ‘суббота’, ‘воскресенье’];
var getDayOfWeek = function (firstDayOfMonth, isDayOfMonth) {
var numberOfFirstDay = daysOfWeek.indexOf(firstDayOfMonth);
var ostatok = isDayOfMonth % 7 - 1;
var omg = numberOfFirstDay + ostatok;
if ( omg <= 7) {
var answer = daysOfWeek[omg];
} else {
var gmo = omg % 7;
answer = daysOfWeek[gmo];
}
return answer;
}
как то так:
function getDayOfWeek(firstDay, resDay){
var week = [‘понедельник’, ‘вторник’, ‘среда’, ‘четверг’, ‘пятница’, ‘суббота’, ‘воскресенье’];
var index = week.indexOf(firstDay);
return week[((resDay%7+index)-1)%7];
}
Пролистал ветку, решение не оригинальное (как придумал так и вышло ХД) , но хоть и не самое громоздкое, + это конечно все вкусовщина, но ИМХО более понятное чем записи в 1-2 строки, возможно через пол года/год я буду быстрее разбираться в однострочных конструкциях, но сейчас они для меня переусложнены (не, так то понятно что они делают но приходиться напрягаться…)
Творчество!
function getDayOfWeek(firstDayMonth, NumberDay) {
var daysWeek = ['воскресенье', 'понедельник', 'вторник', 'среда', 'четверг', 'пятница', 'суббота'];
var NumDaysWeek = daysWeek.indexOf(firstDayMonth);
var i = NumDaysWeek+NumberDay%7-1;
if (i >= daysWeek.length) {
i -= daysWeek.length;
}
return daysWeek[i];
}
Пришел к такому решению:
var getDayOfWeek = function (firDay, day) {
var week = ['понедельник', 'вторник', 'среда', 'четверг', 'пятница', 'суббота', 'воскресенье']
var dayCount = week.indexOf(firDay);
for (let i = 1; i < day; i++) {
if (dayCount == 6) {
dayCount = 0
} else {
dayCount += 1
}
}
return week[dayCount]
}
var getDayOfWeek = function(firstMonthDay, numberRequired) {
var week = [‘понедельник’, ‘вторник’, ‘среда’, ‘четверг’, ‘пятница’, ‘суббота’, ‘воскресенье’]
var dayIndex = week.indexOf(firstMonthDay);
var dayIndexOfWeekRequired = (numberRequired % 7 + dayIndex - 1) % 7;
return week[dayIndexOfWeekRequired];
}
getDayOfWeek(‘воскресенье’, 26);
мой вариант:
var getDayOfWeek = function (dayWeek, number) {
var week = [‘понедельник’, ‘вторник’, ‘среда’, ‘четверг’, ‘пятница’, ‘суббота’, ‘воскресенье’];
var shift = week.indexOf(dayWeek);
var numberDay = (number % 7);
var nameDdayWeek = week[(shift + numberDay - 1)];
if ((shift + numberDay - 1) > 7) {
var nameDdayWeek = week[(shift + numberDay - 1) % 7];
}
return nameDdayWeek;
}
коротко и красиво, хотя возможно есть вариант еще проще)
var getDayOfWeek = function (first, now) {
var arr = [‘понедельник’,‘вторник’,‘среда’,‘четверг’,‘пятница’,‘суббота’,‘воскресенье’]
if (now<6) {
now+=7
}
var a =arr.indexOf(first)+now%7 - 1;
while(a>6) {
a-=7
}
return arr[a]
}
не очень изящно, но работает
var getDayOfWeek = function (dayWeek, numberDayOfWeek) {
var day = ['понедельник', 'вторник', 'среда', 'четверг', 'пятница', 'суббота', 'воскресенье'];
var newWeek = [];
for (var j = 1; j <= 5; j++) {
for (var i = 0; i <= 6; i++) {
newWeek.push(day[i]);
}
}
var number = newWeek.indexOf(dayWeek) + numberDayOfWeek;
return newWeek[number - 1];
Какие-то функции, циклы, массивы!!! Ватафак гайс, код должен быть максимально простым и читабельным. Зашифруете всё в одну строку и попробуй раскодируй что в этой одной строчке напихано.
Вот максимально простой, понятный и самое главное рабочий код с обычной условной конструкцией:
var getDayOfWeek = function (weekDay, flagNumber) {
var message = '';
if (weekDay === 'понедельник' && flagNumber % 7 === 1) {
message = 'понедельник'
} else if (weekDay === 'понедельник' && flagNumber % 7 === 2) {
message = 'вторник'
} else if (weekDay === 'понедельник' && flagNumber % 7 === 3) {
message = 'среда'
} else if (weekDay === 'понедельник' && flagNumber % 7 === 4) {
message = 'четверг'
} else if (weekDay === 'понедельник' && flagNumber % 7 === 5) {
message = 'пятница'
} else if (weekDay === 'понедельник' && flagNumber % 7 === 6) {
message = 'суббота'
} else if (weekDay === 'понедельник' && flagNumber % 7 === 0) {
message = 'воскресенье'
}
if (weekDay === 'вторник' && flagNumber % 7 === 1) {
message = 'вторник'
} else if (weekDay === 'вторник' && flagNumber % 7 === 2) {
message = 'среда'
} else if (weekDay === 'вторник' && flagNumber % 7 === 3) {
message = 'четверг'
} else if (weekDay === 'вторник' && flagNumber % 7 === 4) {
message = 'пятница'
} else if (weekDay === 'вторник' && flagNumber % 7 === 5) {
message = 'суббота'
} else if (weekDay === 'вторник' && flagNumber % 7 === 6) {
message = 'воскресенье'
} else if (weekDay === 'вторник' && flagNumber % 7 === 0) {
message = 'понедельник'
}
if (weekDay === 'среда' && flagNumber % 7 === 1) {
message = 'среда'
} else if (weekDay === 'среда' && flagNumber % 7 === 2) {
message = 'четверг'
} else if (weekDay === 'среда' && flagNumber % 7 === 3) {
message = 'пятница'
} else if (weekDay === 'среда' && flagNumber % 7 === 4) {
message = 'суббота'
} else if (weekDay === 'среда' && flagNumber % 7 === 5) {
message = 'воскресенье'
} else if (weekDay === 'среда' && flagNumber % 7 === 6) {
message = 'понедельник'
} else if (weekDay === 'среда' && flagNumber % 7 === 0) {
message = 'вторник'
}
if (weekDay === 'четверг' && flagNumber % 7 === 1) {
message = 'четверг'
} else if (weekDay === 'четверг' && flagNumber % 7 === 2) {
message = 'пятница'
} else if (weekDay === 'четверг' && flagNumber % 7 === 3) {
message = 'суббота'
} else if (weekDay === 'четверг' && flagNumber % 7 === 4) {
message = 'воскресенье'
} else if (weekDay === 'четверг' && flagNumber % 7 === 5) {
message = 'понедельник'
} else if (weekDay === 'четверг' && flagNumber % 7 === 6) {
message = 'вторник'
} else if (weekDay === 'четверг' && flagNumber % 7 === 0) {
message = 'среда'
}
if (weekDay === 'пятница' && flagNumber % 7 === 1) {
message = 'пятница'
} else if (weekDay === 'пятница' && flagNumber % 7 === 2) {
message = 'суббота'
} else if (weekDay === 'пятница' && flagNumber % 7 === 3) {
message = 'воскресенье'
} else if (weekDay === 'пятница' && flagNumber % 7 === 4) {
message = 'понедельник'
} else if (weekDay === 'пятница' && flagNumber % 7 === 5) {
message = 'вторник'
} else if (weekDay === 'пятница' && flagNumber % 7 === 6) {
message = 'среда'
} else if (weekDay === 'пятница' && flagNumber % 7 === 0) {
message = 'четверг'
}
if (weekDay === 'суббота' && flagNumber % 7 === 1) {
message = 'суббота'
} else if (weekDay === 'суббота' && flagNumber % 7 === 2) {
message = 'воскресенье'
} else if (weekDay === 'суббота' && flagNumber % 7 === 3) {
message = 'понедельник'
} else if (weekDay === 'суббота' && flagNumber % 7 === 4) {
message = 'вторник'
} else if (weekDay === 'суббота' && flagNumber % 7 === 5) {
message = 'среда'
} else if (weekDay === 'суббота' && flagNumber % 7 === 6) {
message = 'четверг'
} else if (weekDay === 'суббота' && flagNumber % 7 === 0) {
message = 'пятница'
}
if (weekDay === 'воскресенье' && flagNumber % 7 === 1) {
message = 'воскресенье'
} else if (weekDay === 'воскресенье' && flagNumber % 7 === 2) {
message = 'понедельник'
} else if (weekDay === 'воскресенье' && flagNumber % 7 === 3) {
message = 'вторник'
} else if (weekDay === 'воскресенье' && flagNumber % 7 === 4) {
message = 'среда'
} else if (weekDay === 'воскресенье' && flagNumber % 7 === 5) {
message = 'четверг'
} else if (weekDay === 'воскресенье' && flagNumber % 7 === 6) {
message = 'пятница'
} else if (weekDay === 'воскресенье' && flagNumber % 7 === 0) {
message = 'суббота'
}return message;}
var daysOfWeek = [‘понедельник’, ‘вторник’, ‘среда’, ‘четверг’, ‘пятница’ ,‘суббота’, ‘воскресенье’];
var getDayOfWeek = function (firstDay, day) {
var num = daysOfWeek.indexOf(firstDay);
if (day < 8) {
var newNum = num + day - 1;
} else {
newNum = num + day % 7 - 1;
}
if (newNum < 8) {
return daysOfWeek[newNum];
} else {
return daysOfWeek[newNum - 7];
}
}
Спасибо. Была такая же ошибка.
var getDayOfWeek = function(dayOfWeek, number){
var dayOfNumber;
var days = [‘понедельник’, ‘вторник’, ‘среда’, ‘четверг’, ‘пятница’, ‘суббота’, ‘воскресенье’]
var index = number % 7 + (days.indexOf(dayOfWeek)) - 1;
console.log(index);
if(index > 7){
dayOfNumber = days[index - 7];
}
else {
dayOfNumber = days[index];}
return dayOfNumber;
}
Получилось так:
function getDayOfWeek(day, number) {
var days = ['понедельник','вторник','среда','четверг','пятница','суббота','воскресенье'];
return days[((number -1)%7 + days.indexOf(day))%7];
}
Вот что вышло:
var getDayOfWeek = function (dayFirst, date) {
var daysOfWeek = ['понедельник', 'вторник', 'среда', 'четверг',
'пятница', 'суббота', 'воскресенье']
var period = daysOfWeek.indexOf(dayFirst) + date - 1;
return daysOfWeek[period % 7];
};
можно %7 вынести за скобки)
Ты - топчик!