Как стать автором
Обновить

Комментарии 70

Сорри, идей по продолжению у меня нет. А вот в моем тёмном банковском прошлом было несколько случаев когда программы, написанные в текущем году, чудили 1-го числа 10-го месяца.
Такое бывает, например, в SQL_Server, когда проставляют дату и база иногда по-разному интерпретирует значение «10-01» или «01-10» — как введешь
Все проще — «9» одна цифра, а «10» — две.
Понятно, что посыл не в том, но всё же никто бы не стал в первый же год добавлять новый день. В реальности остались бы на старом календаре, а потом бы уже постепенно перешли, когда подготовили и софт и людей. Церковь вон живёт с юлианским календарём и никаких проблем не имеет.
Это говорит о высоком качестве и стойкости программ, написанных во времена Цезаря.
Угу. И алгоритм шифрования один — шифр Цезаря.

Точно. Хуже добавления 32 января может быть внезапное добавление 32 января ЗАВТРА.

Русская Православная церковь живёт по григорианскому календарю, по юлианскому они только несколько праздничных дней высчитывают.
Или вы думаете, что у них там вся внутренняя документация и дата в айфонах на 13 дней отстаёт от остального мира? :)

Церковный календарь — как раз юлианский у них.

Насколько я знаю, официальная РПЦ живет сейчас по двум календарям.
Светская деятельность: (хозяйственные вопросы, например, закупки необходимого, общение с госорганами и т.п.) идет у них по григорианскому календарю, ибо внешний мир живет все-таки по нему, (не знаю, правда, как со внутренней хозяйственной деятельностью, особенно в монастырях).
Все богослужение (а не только некоторые праздники) — по юлианскому календарю с дублированием информации для прихожан в григорианском летоисчислении.

О, тогда я тоже живу по двум календарям.
Светская деятельность идёт под григорианскому календарю.
Всё богослужение (работа) — по аджайл-календарю (вместо годов — проекты, вместо месяцев — спринты) с дублированием информации для прихожан (заказчиков) в григорианском исчислении.

"Аджайл-календарь", судя по вашем описанию, календарем не является в принципе.
Календарь должен обеспечивать непрерывный, однозначно просчитываемый на любое время вперед или назад, счет дней.
Проекты и спринты — величина во времени переменная и нерегулярная. Просчитать вперед точно не получится вообще, просчитать назад получится только при использовании всех ранее зафиксированных проектов и спринтови только до дня начала первого проекта.


Более корректным примером была бы жизнь мусульманина, живущего по своему лунному календарю, но вынужденному синхронизировать свои действия с внешним миром, живущим по григорианскому (или еще какому другому) официально действующему в стране календарю.

Календарь должен обеспечивать непрерывный, однозначно просчитываемый на любое время вперед или назад, счет дней.
А вы думали, нам легко?

Более корректным примером была бы жизнь мусульманина, живущего по своему лунному календарю
В таком случае вся Россия живёт по китайскому календарю, со всеми этими цветными зверями.

Мой комментарий был иронией, чтобы показать, что даты песнопений высчитываемые хитрым образом — это настолько же отдельный календарь, как и отсчитывание времени по проектам и спринтам.

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

Неверно. Цветные звери в россии — это всего лишь мода на "восточную экзотику". Причем используются эти звери не по правилам китайского календаря.
А китайский календарь не исчерпывается только этими зверями и является, кстати, лунным, синхронизируемым с солнечным путем вставки месяцев.


Мой комментарий был иронией, чтобы показать, что даты песнопений высчитываемые хитрым образом — это настолько же отдельный календарь, как и отсчитывание времени по проектам и спринтам.

Пес его знает, но от знакомого священника слышал, что они именно ведут счет дней для богослужений по юлианскому календарю, а не пересчитывают постоянно один календарь в другой.


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

Точность календаря для не астрономов не имеет никакого принципиального значения, если календарь плюс-минус лапоть соответсвует природным циклам. Главное, чтобы правила исчисления не сильно противоречили традиции и не были слишком сложны.
Если расхождение в дни накапливается за несколько столетий, то это меньшая погрешность, чем изменения сроков наступления сезонов в результате природных циклов, деятельности человека и прочих причин.
По мне, так давно пора сделать более простой календарь с равномерным делением на месяцы (предложения делаются постоянно в изобилии), но это же придется поломать многовековую (даже уже многотысячелетнюю) традицию. Люди не примут.


Арабский календарь вообще не синхронизирован с солнечным. И ничего, живут себе люди, особо не парятся. И ведь тоже за точность боролись (синхронизация с луной), изобретали новые схемы вставки дней (вспоминаются как минимум арабский и турецкий методы).

Они до сих пор даже не умеют нормально даты пересчитывать…
Проблемы вендоюзеров — это проблемы только вендоюзеров! У вас 20 с лишним лет было для возможности перейти с прошивок для игровых приставок на нормальную операционную систему общего назначения. Не захотели? Ну, страдайте…
Предвижу предполагаемый ответ, но всё-таки поинтересуюсь: на «нормальную» — это на какую?

Очевидно же что какой то подвид линуксов, ведь каждая бугалтерша может себе позволить собрать на рабочем месте небольшую генту, и за чашкой кофе с коллегами обсудить гнилость вендры, ну а секретарям уж можно и на макоси посидеть, лицо компании же. Так и представляю как в сельской местности глава райцентра смотрит с выпученными глазами на стоимость мака для его секретаря, у которого до сих пор в 2020 году стоит хп с первым сервиспаком...


А мне интересно, а почему 32 января, а не 30 февраля?

"И упали небеса, и схлеснулись силы арчеров, маковедов и убунтоводов..."

Переходить на свою абстрацкию для работы с датами? Интересно, у кого-то такое реально было?
Ой, когда битики экономят, какой только велосипед не придумают. ГЛОНАСС — номер дня в четырехлетии, номер четырехлетия. GPS — номер недели в 19.5-летии. GALIELO — номер недели в 78летии.

И это не считая коррекции замедления времени.

Время — это не дата.

P.S. Коррекции замедления времени в приемнике GPS — это некая городская легенда. Не выиграл, а проиграл, и не автомобиль, а 100 рублей, и не в преференс, а в домино. Теория относительности, разумеется, учитывается, но в основном на спутнике. Я могу подробно рассказать, но это довольно много.

P.P.S. Реально в приемнике учитывается намного большая величина — замедление вращения Земли. Оно — до двух секунд в год, а релятивистский эффект — 0.013 секунды в год.

Про коррекцию времени где-то на хабре в комментариях чистал со ссылкой на технические требования. Правда не уверен, что именно на GPS/ГЛОНАСС спутники, тем не менее релятивистские эффекты были в списке. Мне изначально стоило упомянуть просто коррекцию времени.


до двух секунд в год

а речь про угловые расстояния или именно про временные?

Релятивистские эффекты есть, но коррекция часов спутника в большинстве — общая, по данным наблюдений. И включает в себя сумму всех эффектов. А приёмник делает лишь коррекцию на изменение скорости спутника (орбита не совсем круговая), причем не на ГЛОНАСС (там эта коррекция делается в эфемеридах).

а речь про угловые расстояния или именно про временные?
Коррекция временная, это расхождение между UTC и UT1. В угловые ошибки она пересчитывается примерно как 360 градусов/24 часа = 1 градус / 4 минуты = 1 угловая минута / 4 секунды. То есть до 30 угловых секунд в год с матожиданием 7-8 угловых секунд.

Если для записи в Oracle использовать OCI, то можно записать время, в котором будет 61 секунда

Я бы попробовал разделить 31 января на два. То есть на уровне записи в БД если это 13:11 31 января, то писал бы как 31. 06:20, а если это 32 января, то 31. 18:20. Тогда это решит обратную совместимость и уберёт "данные из будущего". Тем не менее, наверняка где-то всё-равно ляжет в момент чтения через пару секунд (записывали 13, записалось 6), так что может быть в ночь с 31 на 32 подправить все записи за прошлый день.

… А потом окажется, что из-за сбоя с датой в ЦЕРНе, на Большом Адронном Коллайдре, как раз что-то и случилось и то тело и появилось из-за этого…

Или же кто-то кто запустил наш мир в виртуалке — и сбой произошёл именно в ней, что выразилось в «дублировании» нашей Земли из прошлого либо будущего… =)

Я всегда использую unix-время. Проблемы ожидаются минимальными. :P

Если брать секунды отсчета от 1970, то вроде ок. Разве что даты не будут парситься и инициализация datetime будет проходить с ошибкой.

Я про то, что вот такие кейсы будут падать с ошибками:
datetime.parse(«2020/01/32»)
new datetime(2020, 01, 32)

Конечно, функции преобразования от/к человеческих форматов должны быть пофиксены. Но это именно что "минимальные проблемы".

Эмммм, боюсь, что проблемы этим не ограничатся.

Например, введение 32 января 2020 года приведет к тому, что заказ, оформленный в 2019-м и назначенный к отгрузке на 10 февраля 2020 года, «переедет» на 9 февраля.

А как ваш софт работает например с датой рождения? Пользователь выбрал дату рождения 3 мая 1965 года.

Ну просто же — отрицательное значение. /s

Зато у вас через 19 лет могут быть развлечения

Очень маловероятная ситуация, её учёт никому не нужен. А вот реальную и нередкую смену часовых поясов как раз учли через tzdata.


Вы же не беспокоитесь заранее о сценарии, что вы проснётесь, а вы котик и у вас лапки?
Вот и 32 января нужно просто забыть, т.к. такого не бывает.


А если бы нас в чорную дыру засосало, и в окружности стало бы не 360, а 362 градуса — это что, все транспортиры переделывать?) И опять программисты виноваты?

Про tzdata да, заранее побеспокоились, потому что кейс чаще встречается. И да, маловероятная ситуация, поэтому статья в блоге «Научная фантастика».

Про 360 градусов спорно. Окружность она одна, и хоть ты дели её на 2 половинки или на 360 частей, окружностью она быть не перестанет. Вот если меняется диаметр окружности, то будут нестыковки.
А почему нельзя просто забить на такое удлинение года? Ну будет зима по чуть-чуть уползать, через сто лет будет не июль самым жарким, а октябрь — никто и не поймёт что не так. В Австралии вот живут же как-то. Проблемы, наверное будут у астрономов только, но они там пусть уж сами разбираются между собой.

У астрономов меньше всех будет проблем — у них есть юлианские дни.

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

С другой стороны, есть вероятность что после такого события астрономию признают лженаукой и коррективы в расчётах уже не потребуются, всех астрономов, например, сожгут на кострах.
Объявить текущий год високосным, получить гораздо больше времени для подготовки патчей? Место и логика под 29 февраля есть. За год написать новые обработчики для 30 февраля.
Это разумнее, чем патчить для 32 января
Объявить текущий год високосным


В статье как раз и указано, что 2020 и так уже високосный)
Хм… Пропасть в один день можно преодолеть в два прыжка. Логично было бы на этот год оставить всё как есть, и сделать только… 32 декабря. За год бы всё везде настроили. А потом уже как угодно — вариант удлинить февраль думается самый естественный. Мировое правительство должно было посоветоваться со мной.
Идея рассказа шикарна! Респект!

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

А ещё много софта полагается на то, что дата на может быть больше 31...

Только там не упомянуто этого «заблуждения», потому что это не заблуждение. Количество дней в месяце может быть разным, но не больше 31.
Впрочем, Википедия говорит, что в бенгальском календаре бывает 32 дня в месяце.
НЛО прилетело и опубликовало эту надпись здесь

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


Если же брать оптимистичный сценарий научно-фантастического эпоса, то сперва нужно усомниться в корректности положений магнитных полюсов, положение планеты относительно других объектов в космосе. Взаимодействие связанного объекта Земля-Луна. Определить, отсутствие сильных колебаний земной коры и только потом придумывать куда девать дополнительные минуты с секундами. и только на следующих этапах вносить изменения в софт по всей планете. (Насколько помню движение по орбите неравномерное плюс минус несколько минут в год набегает). И первое что будут исправлять сервера времени в интернете и системы навигации для кораблей, самолетов и иного транспорта, а также на всяких электростанциях и прочих инфраструктурных объектах, и только потом возьмутся за патчи для десктопных операционок.
Правда во всей это вероятной "положительной" чехарде всё равно будут жертвы. Самое вероятно это пациенты с программными кардиостимуляторами или автоматического впрыска инсулина

НЛО прилетело и опубликовало эту надпись здесь

«собрал вещички и купил билеты на 29 января на Мальдивы. Чуть-чуть заранее, чтобы самолет точно долетел.» — напомнило эпизод из Дилберта «не рекомендую летать в конце месяца»

Можно добавить 13 месяц, состоящий из 1-го дня, между декабрем и январем. Назвать его можно Новый год. В этот месяц всем праздновать Новый год, наряжать елку, и получать 13-ю зарплату. Но 1-го января уже на работу.
А потом кому-то придётся посчитать количество месяцев с определённой даты…
Ну вы должны понимать, что к такому событию планетарного масштаба ленивыми методами не приспособиться. Все равно где-то что-то кому-то придётся менять глобально-кардинально.
Не вижу проблемы ввести 30 февраля, но только со следующего года.
А 13-й месяц это костыль навечно. Всем придётся ставить костыль при подсчёте месяцев.
Странно, что вы серьезно воспринимаете полушутливое предложение. Месяц из одного дня… ну явно же шутка глупости.
Видимо я слишком серьёзен. Но увидев 4 плюса у меня возникли сомнения, может я чего не понимаю? и добавить день реально сложнее, чем месяц?

Надо выбрать место для посадки-сказал Нарг Главный. Провожу сканирование-ответил ему Нарг Ведомый.
Через несколько минут челнок плавно опустился на землю, найдя небольшое плоское место среди обваливающихся строений, наполовину заросших растительностью.
Из челнока вылетел дрон-сканер и выбежал, похожий на жука, дрон-разведчик. Дрон-сканер стал летать концентрическими кругами, постоянно сканируя местность внизу, а механический жук, получавший от него данные, направился к одному из зданий, наименее пострадавшему на фоне всех остальных. Забравшись внутрь, он просканировал помещение и обнаружил допотопную электронику. Один из таких приборов обладал антеннами передачи данных и индукционной зарядкой. В устройстве была батарея, но она давно пришла в негодность, однако, просканировав доступные интерфейсы, кибержук перенастроил свои электромагнитные антенны и стал передавать энергию на устройство. Устройство ожило, но некоторое время не реагировало на сканирование передачи данных. Затем появилась активность на частоте 5 Гигагерц, и адаптивный сканер смог встроиться в канал обмена данными и получить доступ к устройству.
Нарг Главный следил за передачей данных на бортовой компьютер челнока, одновременно запуская анализ всей полученной информации. На устройстве было примитивное шифрование, и объем данных был мизерный. Но это позволило воссоздать хронологию событий перед катастрофой.
«Они так и не смогли перенастроиться?» — холодным голосом спросил Нарг Ведомый. Нарг Главный кивнул ему в ответ. «Мы хотели, чтобы они синхронизировали свое время с межгалактическим» — ответил он. «Точный гравитационый маневр управляемого планетоида, и вращение их планеты вокруг звезды стало стандартизованным циклом. Мы прилетели ровно через тысячу циклов, но их цивилизация оказалась неспособна принять такие незначительные изменения». «Что стало причиной катастрофы?» — снова спросил Нарг Ведомый. «Их оружие на основе деления ядра имело защитный механизм, в котором была проверка количества оборотов планеты в течение одного цикла. Дополнительный оборот был расценен системой как нарушение ее внутренней целостности атакующей стороной, и это запустило процедуру массового опережающего удара».
Нарг Главный и Нарг Ведомый облачились в скафандр, открыли шлюз и вступили на поверхность планеты. Планета встетила их таким-же безжизненным пейзажем, как и на экранах мониторов. «Надо дать им еще миллион циклов на восстановление» -сказал Нарг Главный, указывая рукой на растительность, покрывающую разрушенные дома. «Они могут успеть проэволющионировать» — ответил ему Нарг Ведомый. Затем двухголовая фигура направилась обратно к челноку, обгоняемая дроном и кибержуком, поспешившим вернутся обратно. Когда челнок взлетал, маленькое устройство, которое только что рассказало все секреты своей планеты, потеряло последние крохи от полученного беспроводного заряда и выключилось. На этот раз навсегда.

Господи, зачем такие сложности?
просто сделайте два 31-х января — и всё.
В конце дня переводим дату на день назад — и делов-то…
сложностей на порядок меньше
Если в конце каждого 31 января переводить дату на день назад, то никаких других дат не останется. Будет вечное 31 января, удобно.
Значит за 10 минут воздействия гравитации объекта период обращения земли вокруг солнца увеличился на 1/365, так? Значит орбита увеличилась на 1/365-ю своей длины, соответственно Земля удалилась от Солнца на 1/365-ю от 150 млн км, правильно?

Вообще-то она и сейчас эллипс.

Эээ, не так — это "тело" могло в основном только лишь ускорить землю и только совсем немного сместить, потому что действовало через гравитационную силу = влияло на ускорение.
1/365*150млн км за 10 син это ~ 700 км/сек, что в

В 20 раз выше скорости движения Земли по орбите. Не кисло бы тряхнуло)

Так оно и ускорило. Орбита поменялась, т.к. скорость другая. И через 183 дня земля будет в наиболее сместившийся точке орбиты. По моему это очевидно.
Часть 8.
Наступило 32 января, или как его назвали позже, «Чёрная суббота». Сбои возникали буквально везде. Связь была парализована. Многие производители успели выпустить патчи, да вот только они не были совместимы друг другом, где-то не загрузили последнюю версию. Самолёты не падали на землю только потому, что не могли взлететь из аэропортов — диспетчеры практически ослепли. Железной дороге повезло чуть больше и поезда, хоть с большими задержками, но отправлялись. Водители усиленно вспоминали сигналы регулировщиков…
Завод контроллеров же встретил утреннюю смену нормальным рабочим жужжанием. Вскоре после полуночи сработала самодиагностика и все критичные процессы встали. Админы быстренько отключили сеть, которая всё равно не работала, перевели время на сутки назад и восстановили всё, что можно, из вчерашнего бэкапа, заставив систему позабыть о том, что 31 января уже однажды было. Процесс продолжился с минимальными потерями.

Часть 9.
К 29-му февраля 2021 года все уже успели подготовиться и как следует протестировать всё взаимодействие. Даже Microsoft в качестве исключения, пропатчил «семёрку». По-прежнему возникало много мелких проблем, но мир не был парализован и они причиняли только лёгкое неудобство, несмотря на все панические настроения сторонников «конца света».

Часть 10.
К 2025 году обычные люди уже стали забывать, что когда-то было по-другому. Но не учёные, работавшие в Новосибирском институте ядерной физики. Все немногие собранные данные по «Чеширу» были проанализированы и не поддавались объяснению с помощью известных законов. Ведущие физики мира пытались разрешить эту загадку, но пока не добились успеха. Возникали различные теории, но они стремительно разбивались как частицы в коллайдере. Анатолию очень нравилось это сравнение, он находился в приподнятом настроении — сегодня пройдёт его эксперимент. Пройдя небольшой бюрократический ад, он всё-таки получил время на коллайдере, показав важность своей теории. Задача немного осложнялась тем, что подобный эксперимент мог привести к опасным последствиям. В ЦЕРНе энергии были намного выше, но если он окажется прав, то сможет достигнуть тех же результатов при энергиях на два порядка меньше, а на полной мощности — опередить ЦЕРН на несколько лет. Поэтому стоит начать с маленьких энергий и просто повторить уже пройденные результаты. Пожалуй, бозон Хиггса достаточно известен общественности и повторение этого эксперимента сыграет ему на руку в будущем. Всего 5% мощности и несколько хитростей.

Часть 11.
По иронии судьбы, эксперимент был назначен на ночь с 31 января на 1 февраля.
Анатолий сидел в задумчивости и ожидал накачки мощности. Из оцепенения его вывел каой-то писк… Анатолий моргнул и увидел россыпь лампочек, сигнализирующих о многочисленных неисправностях. Выведено из строя. Всплеск мощности. Напряжение превышает порог. Проблема возникла ровно в полночь в одном из контроллеров, который регулировал подачу электричества на усилительный каскад. Почти 5 лет он работал безотказно, но сегодня обстоятельства сложились для него не лучшим образом.
В трубе ускорителя тем временем полным ходом шёл эксперимент, о котором Анатолий только мечтал. Частицы сталкивались на скоростях, недостижимых ранее на Земле. В трубе начала образовываться миниатюрная чёрная дыра. Под непрерывным потоком частиц она оставалась стабильной.
Анатолий завороженно смотрел на получаемые данные, всё ещё не понимая что происходит. Впереди ждут месяцы обработки. Через некоторое время он опомнился и побежал к экстренному рубильнику.
Без поддержки ускорителя, чёрная дыра мгновенно рассосалась. Она просуществовала всего-лишь 10 минут…
В трубе начала образовываться миниатюрная чёрная дыра.

Осторожнее! Мы так уже потеряли луну
Рассказ где описан эксперимент когда черная дыра не рассосалась.
Я бы предложил сделать сделать календарь без месяцев чтобы можно было без последствий добавлять дни и регулировать год в зависимости от планеты.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории