Часовой форум Watch.ru (http://forum.watch.ru/index.php)
-   Электроника (http://forum.watch.ru/forumdisplay.php?f=28)
-   -   Часы "Техночас", или ... (http://forum.watch.ru/showthread.php?t=169613)

Андрей Бабанин 12.01.2021 18:20

Да, задавался номер года для корректного отображения чисел месяца

booBot 12.01.2021 18:52

Опять не понял, что задавалось? Весь номер года, - 1984, или его номер в череде високосности?

Андрей Бабанин 12.01.2021 19:13

В четырехлетнем цикле, цифрами 0-3

max-73 13.01.2021 00:12

Цитата:

Сообщение от booBot (Сообщение 6084200)
Говорю вам как инженер: ничего не делать ПРОЩЕ, чем что-то делать.
Чтобы сделать ограничение диапазона работы счётчика годов, надо что-то ДОБАВИТЬ в схему, а это - СЛОЖНО. ПРОЩЕ НЕ ДОБАВЛЯТЬ!

Можно только позавидовать тому, что в той сфере, в которой вы инженер, ресурсы неисчерпаемы и ограничены только искуственными ограничениями :)
Вот вариант с "естественными" ограничениями: год храним как смещение от 1980 в структуре, подобной упакованному BCD. Младшая цифра - двоично-десятичный счетчик, старшая - двухразрядный счетчик. Итого: имеем смещение от 0 до 39 => 1980 - 2019. Можно сделать и трехразрядный счетчик, но это лишние элементы микросхемы ради верхнего ограничения, равного 2059 и никому, кроме коллекционеров, не нужного.

Цитата:

Сообщение от booBot (Сообщение 6084200)
Ещё проще, и ГОРАЗДО ЛОГИЧНЕЕ, сделать счётчик годов, ёмкостью от 0 до 3, договориться, что нулю соответствует високосный год, в нём февраль длится 29 дней, в остальные годы - по 28.

За всех не скажу, а для меня, как для пользователя, гораздо логичнее настраивать год в том виде, в котором я его вижу в календаре, а не заниматься подсчётом номера года в 4-летнем цикле или что-то настраивать 1 марта. А ещё логичнее в дальнейшем видеть нормальный год в соответствующем режиме.

Цитата:

Сообщение от booBot (Сообщение 6084200)
ПОЧЕМУ СДЕЛАЛИ НЕ ТАК?!?!?!?!

PS
Чтобы не "пугать" пользователей этими "номерами годов" <...>

Вот потому и не сделали, чтобы не пугать )))

Андрей Бабанин 13.01.2021 00:56

Вечный календарь все равно намного сложнее, четырехлетний цикл прост, но не отображает годы, надо отдельный счетчик делать. А с отображением номера года это будет все равно упрощенный вечный календарь (скажем так - Юлианский). Я понимаю, что это все теория и мы все скорее всего не доживем, но очередное отличие в Юлианском и Григорианском календарях настанет в 2100 году. Именно так, три даты столетий из четырех - не високосные. Високосными были 1600 и 2000 годы, а 1700, 1800, 1900 и 2100 - не високосные, хотя делятся на 4 без остатка.

booBot 13.01.2021 01:25

max-73, счётчик от 0 до 3 всяко проще, чем выверты с BCD и упаковкой. Тем более, что показа (полного, - 1984) номера года не было в большинстве часов "Электроника", хотя "календарь" заявлялся.
Задним умом все крепки, но я не могу понять ход мысли тогдашних разработчиков...

Pachoche 13.01.2021 08:39

Цитата:

Сообщение от booBot (Сообщение 6084740)
Задним умом все крепки, но я не могу понять ход мысли тогдашних разработчиков...

Подозреваю, что ограничение по диапазону (40 лет) не связано с вечным календарём. Просто значение приходится где-то хранить, а ресурсы ограничены. Чем больше диапазон, тем более ёмкое хранилище должно быть.

booBot 13.01.2021 11:34

Какое значение надо где-то хранить?!
Значение счётчика от 0 до 3? Двух бит достаточно.

Pachoche 13.01.2021 11:55

Цитата:

Сообщение от booBot (Сообщение 6084984)
Какое значение надо где-то хранить?!
Значение счётчика от 0 до 3? Двух бит достаточно.

Значение даты/времени.
Впрочем, я не разбираюсь в устройстве электронных часов. Просто по аналогии с программированием. В C#, например, тип DateTime требует 64 бита.

booBot 13.01.2021 12:09

Значение времени "хранить" не надо, оно находится в аппаратном счётчике, постоянно отображаемом на экранчике. Ёмкость каждого разряда счётчика, кроме ячейки числа дней в месяце, задана раз и навсегда. И только для "февраля" вступает в действие двухбитовый "високосный" разряд.
Во всяком случае, я бы сделал именно так.
Как и почему разработчики наваяли всякой пурги, работающей только ~40 лет, мне НИКАК не понять!


Часовой пояс UTC +3, время: 16:38.

© 1998–2024 Watch.ru