05.03.2019, 12:45
|
Кандидат Javascript-наук
|
|
Регистрация: 24.02.2019
Сообщений: 126
|
|
Сообщение от Nexus
|
краткие комментарии того, что делает код?
|
ага...
|
|
05.03.2019, 13:01
|
Кандидат Javascript-наук
|
|
Регистрация: 24.02.2019
Сообщений: 126
|
|
Neon, а разве строчка d = new Date(new Date()-raznica*24*60*60*1000); не высчитывает разницу между каледарями? где raznica это переменная переименованная мною из ваших вариантов вместо 'х'...
Последний раз редактировалось Besprizornik, 05.03.2019 в 13:06.
|
|
05.03.2019, 13:03
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Besprizornik, вы так и не остановились на том, что я вам повторял дважды - подумать чего не хватает в вашей программе. Вместо этого, судя по коду здесь, вы упорно продолжаете использовать пустые опции никчемные для вашей программы.
А ведь не в каждом месяце по 31 дню, более того, количество дней февраля зависит от года. При этом, если объекту Date передать 31 число для месяца в котором всего 30 дней, то ошибки не будет, просто объект вернет 1 число следующего месяца. Но ведь пользователь получит совсем не то чего ожидает.
А значит сначала нужно выбросить лишние никчемные опции, и вместо этого добавить управление либо доступа, либо скрывать/показывать тем опциям, которые действительно в этом нуждаются. Если выбран месяц в списке, а число в списке дней более количества дней этого месяца, то выбрать в нем последнее число выбранного месяца, а большие скрыть или сделать недоступными для выбора. Для февраля еще и с учетом года. Ну или какой-то иной механизм, но должен быть.
А уж потом все остальное.
|
|
05.03.2019, 13:12
|
Кандидат Javascript-наук
|
|
Регистрация: 24.02.2019
Сообщений: 126
|
|
laimas,
пока вопрос стоял о вычитания правильного количества дней согласно таблице, взятой из википедии
|
|
05.03.2019, 13:23
|
Кандидат Javascript-наук
|
|
Регистрация: 24.02.2019
Сообщений: 126
|
|
плюс на экране отображается дата По обоим календарям и если объект добавил лишний день из следующего месяца то видно на экране, что первому числу соответствует 1 минус 13 ,а не 30 минус 13
|
|
05.03.2019, 13:28
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от Besprizornik
|
пока вопрос стоял о вычитания правильного количества дней согласно таблице
|
Сообщение от Besprizornik
|
плюс на экране отображается дата По обоим календарям и если объект добавил лишний день из следующего месяца
|
Каком экране? У вас список как был с выбранным числом так и остался. Если отмотать "пленку" назад и говорить о получении дня недели, то получается полная профанация.
Впрочем, дело хозяйское, что хотите, то и делайте.
|
|
05.03.2019, 13:41
|
Кандидат Javascript-наук
|
|
Регистрация: 24.02.2019
Сообщений: 126
|
|
laimas,
я понял что надо вместо -13 создать переменную, в которой хранится количество дней, и как менять это количество в зависимости от периода... или я что-то не так понял?
|
|
05.03.2019, 13:47
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,795
|
|
Besprizornik, я добавил комментарии к своему коду, смотрите пост №6.
Я только сейчас обратил внимание, что у вас используются даты, выходящие за границы т.н. эпохи unix.
Не могу гарантировать, что класс Date будет работать корректно.
|
|
05.03.2019, 14:33
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от Besprizornik
|
я понял что надо вместо -13 создать переменную
|
13 чего, опции? Вам вообще они не нужны. Но у вас странная логика - показать день недели, это просто вывод значения из определенного массива, индексом которого будет полученный день недели. По вашей же логике это не имеет значения и можно городить костыли со списком в котором куча опций, доступностью которых нужно управлять.
Лишние опции в списках месяцев и дней недели вообще лишний балласт, вы это оправдываете показом какой-то пустой даты.
Коли мне предоставляется возможность выбрать дату, информация по которой меня интересует, то я не должен догадываться почему она изменилась на каком-то экране, о котором вы говорите. Это я как разработчик могу знать как поступит объект Date при вводе некорректной даты, а пользователи что тоже все поголовно программисты и в курсе этого? Наверное же это не их проблемы, а ваши, вы должны предусмотреть все чтобы исключить человеческий фактор при выборе даты.
Но у вас же своя логика по данному вопросу, для меня непонятная, а если я не понимаю, то и сказать ничего не могу.
Делайте как считаете нужным, мне то в общем все равно.
|
|
05.03.2019, 15:35
|
Кандидат Javascript-наук
|
|
Регистрация: 24.02.2019
Сообщений: 126
|
|
laimas,
скрыть 31 число? и заставить пользователя сначала ввести месяц...
это мне кажется не выход...
правильным вариантом мне представляеться отслеживать что ввёл пользователь и после ввода пары число месяц или если введена пара год и что еще, тогда после нажатия на кнопку выводить всплывающее окно с инфой мол в этом месяце столько то дней, введите правильную дату...
Последний раз редактировалось Besprizornik, 05.03.2019 в 15:48.
|
|
|
|