Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   if – else if – else (https://javascript.ru/forum/misc/76955-if-%E2%80%93-else-if-%E2%80%93-else.html)

Besprizornik 05.03.2019 12:45

Цитата:

Сообщение от Nexus (Сообщение 504392)
краткие комментарии того, что делает код?

ага...

Besprizornik 05.03.2019 13:01

Neon, а разве строчка d = new Date(new Date()-raznica*24*60*60*1000); не высчитывает разницу между каледарями? где raznica это переменная переименованная мною из ваших вариантов вместо 'х'...

laimas 05.03.2019 13:03

Besprizornik, вы так и не остановились на том, что я вам повторял дважды - подумать чего не хватает в вашей программе. Вместо этого, судя по коду здесь, вы упорно продолжаете использовать пустые опции никчемные для вашей программы.

А ведь не в каждом месяце по 31 дню, более того, количество дней февраля зависит от года. При этом, если объекту Date передать 31 число для месяца в котором всего 30 дней, то ошибки не будет, просто объект вернет 1 число следующего месяца. Но ведь пользователь получит совсем не то чего ожидает.

А значит сначала нужно выбросить лишние никчемные опции, и вместо этого добавить управление либо доступа, либо скрывать/показывать тем опциям, которые действительно в этом нуждаются. Если выбран месяц в списке, а число в списке дней более количества дней этого месяца, то выбрать в нем последнее число выбранного месяца, а большие скрыть или сделать недоступными для выбора. Для февраля еще и с учетом года. Ну или какой-то иной механизм, но должен быть.

А уж потом все остальное.

Besprizornik 05.03.2019 13:12

laimas,
пока вопрос стоял о вычитания правильного количества дней согласно таблице, взятой из википедии

Besprizornik 05.03.2019 13:23

плюс на экране отображается дата По обоим календарям и если объект добавил лишний день из следующего месяца то видно на экране, что первому числу соответствует 1 минус 13 ,а не 30 минус 13

laimas 05.03.2019 13:28

Цитата:

Сообщение от Besprizornik
пока вопрос стоял о вычитания правильного количества дней согласно таблице

Цитата:

Сообщение от Besprizornik
плюс на экране отображается дата По обоим календарям и если объект добавил лишний день из следующего месяца

Каком экране? У вас список как был с выбранным числом так и остался. Если отмотать "пленку" назад и говорить о получении дня недели, то получается полная профанация.

Впрочем, дело хозяйское, что хотите, то и делайте.

Besprizornik 05.03.2019 13:41

laimas,
я понял что надо вместо -13 создать переменную, в которой хранится количество дней, и как менять это количество в зависимости от периода... или я что-то не так понял?

Nexus 05.03.2019 13:47

Besprizornik, я добавил комментарии к своему коду, смотрите пост №6.

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

laimas 05.03.2019 14:33

Цитата:

Сообщение от Besprizornik
я понял что надо вместо -13 создать переменную

13 чего, опции? Вам вообще они не нужны. Но у вас странная логика - показать день недели, это просто вывод значения из определенного массива, индексом которого будет полученный день недели. По вашей же логике это не имеет значения и можно городить костыли со списком в котором куча опций, доступностью которых нужно управлять.

Лишние опции в списках месяцев и дней недели вообще лишний балласт, вы это оправдываете показом какой-то пустой даты.

Коли мне предоставляется возможность выбрать дату, информация по которой меня интересует, то я не должен догадываться почему она изменилась на каком-то экране, о котором вы говорите. Это я как разработчик могу знать как поступит объект Date при вводе некорректной даты, а пользователи что тоже все поголовно программисты и в курсе этого? Наверное же это не их проблемы, а ваши, вы должны предусмотреть все чтобы исключить человеческий фактор при выборе даты.

Но у вас же своя логика по данному вопросу, для меня непонятная, а если я не понимаю, то и сказать ничего не могу. ;)

Делайте как считаете нужным, мне то в общем все равно. :)

Besprizornik 05.03.2019 15:35

laimas,
скрыть 31 число? и заставить пользователя сначала ввести месяц...
это мне кажется не выход...
правильным вариантом мне представляеться отслеживать что ввёл пользователь и после ввода пары число месяц или если введена пара год и что еще, тогда после нажатия на кнопку выводить всплывающее окно с инфой мол в этом месяце столько то дней, введите правильную дату...


Часовой пояс GMT +3, время: 07:24.