Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 05.03.2019, 12:45
Кандидат Javascript-наук
Отправить личное сообщение для Besprizornik Посмотреть профиль Найти все сообщения от Besprizornik
 
Регистрация: 24.02.2019
Сообщений: 126

Сообщение от Nexus Посмотреть сообщение
краткие комментарии того, что делает код?
ага...
Ответить с цитированием
  #22 (permalink)  
Старый 05.03.2019, 13:01
Кандидат Javascript-наук
Отправить личное сообщение для Besprizornik Посмотреть профиль Найти все сообщения от Besprizornik
 
Регистрация: 24.02.2019
Сообщений: 126

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

Последний раз редактировалось Besprizornik, 05.03.2019 в 13:06.
Ответить с цитированием
  #23 (permalink)  
Старый 05.03.2019, 13:03
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

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

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

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

А уж потом все остальное.
Ответить с цитированием
  #24 (permalink)  
Старый 05.03.2019, 13:12
Кандидат Javascript-наук
Отправить личное сообщение для Besprizornik Посмотреть профиль Найти все сообщения от Besprizornik
 
Регистрация: 24.02.2019
Сообщений: 126

laimas,
пока вопрос стоял о вычитания правильного количества дней согласно таблице, взятой из википедии
Ответить с цитированием
  #25 (permalink)  
Старый 05.03.2019, 13:23
Кандидат Javascript-наук
Отправить личное сообщение для Besprizornik Посмотреть профиль Найти все сообщения от Besprizornik
 
Регистрация: 24.02.2019
Сообщений: 126

плюс на экране отображается дата По обоим календарям и если объект добавил лишний день из следующего месяца то видно на экране, что первому числу соответствует 1 минус 13 ,а не 30 минус 13
Ответить с цитированием
  #26 (permalink)  
Старый 05.03.2019, 13:28
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Besprizornik
пока вопрос стоял о вычитания правильного количества дней согласно таблице
Сообщение от Besprizornik
плюс на экране отображается дата По обоим календарям и если объект добавил лишний день из следующего месяца
Каком экране? У вас список как был с выбранным числом так и остался. Если отмотать "пленку" назад и говорить о получении дня недели, то получается полная профанация.

Впрочем, дело хозяйское, что хотите, то и делайте.
Ответить с цитированием
  #27 (permalink)  
Старый 05.03.2019, 13:41
Кандидат Javascript-наук
Отправить личное сообщение для Besprizornik Посмотреть профиль Найти все сообщения от Besprizornik
 
Регистрация: 24.02.2019
Сообщений: 126

laimas,
я понял что надо вместо -13 создать переменную, в которой хранится количество дней, и как менять это количество в зависимости от периода... или я что-то не так понял?
Ответить с цитированием
  #28 (permalink)  
Старый 05.03.2019, 13:47
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

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

Я только сейчас обратил внимание, что у вас используются даты, выходящие за границы т.н. эпохи unix.
Не могу гарантировать, что класс Date будет работать корректно.
Ответить с цитированием
  #29 (permalink)  
Старый 05.03.2019, 14:33
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

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

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

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

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

Делайте как считаете нужным, мне то в общем все равно.
Ответить с цитированием
  #30 (permalink)  
Старый 05.03.2019, 15:35
Кандидат Javascript-наук
Отправить личное сообщение для Besprizornik Посмотреть профиль Найти все сообщения от Besprizornik
 
Регистрация: 24.02.2019
Сообщений: 126

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

Последний раз редактировалось Besprizornik, 05.03.2019 в 15:48.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск