Какой сегодня день?

:confused:

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 лайк

Пролистал ветку, решение не оригинальное (как придумал так и вышло ХД) , но хоть и не самое громоздкое, + это конечно все вкусовщина, но ИМХО более понятное чем записи в 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];
}
2 лайка

Пришел к такому решению:

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]
}
1 лайк

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;}
1 лайк

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];
};
1 лайк

можно %7 вынести за скобки)

1 лайк

Ты - топчик!