Monday, February 5th, 2007 06:12 pm
Почему в Экселе 1900 год - високосный. Високосный он потому, что он был таким в Лотус 1-2-3, а там он был таким потому, что так считать легче было. Т.е. косоруким программерам, которые писали 1-2-3, было неасилить правильный алгоритм подсчета високосных лет. Там ведь целых три условия! Вот с тех пор основные электронные таблицы - что Excel, что Quattro Pro - так 1900-й високосным и считают. 20 лет уже прошло и еще 20 пройдет, а не исправят. Думаю, когда изобретут разумных роботов, то в их тайных религиозных книгах будет написано, что 1900 - високосный год, потому что так завещали им далекие предки.

И так у нас везде и всё...
P.S. цитата в тему.
Tuesday, February 6th, 2007 02:49 am (UTC)
Джоэл подровно именно об этом буге писал:
http://www.joelonsoftware.com/items/2006/06/16.html
Tuesday, February 6th, 2007 03:20 am (UTC)
А не три условия? Каждый четвертый год, каждый сотый и каждый четырехсотый. Впрочем, я могу и ошибаться, но ведь 2000 год таки был високосным.
Tuesday, February 6th, 2007 05:55 am (UTC)
Криворукие программисты, например, и в Outlook 2000 никак не могли правильно написать расчет еврейских, мусульманских, возможно и других праздников, поэтому забили их таблично года на 3 вперед, поэтому уже где-то к 2004 все праздники закончились.
Tuesday, February 6th, 2007 06:59 am (UTC)
Я полагаю что это тянется ещё с VisiCalc на Apple II. А вот там программистам могло банально не хватать памяти на три лишние инструкции.
Tuesday, February 6th, 2007 07:01 am (UTC)
Это не криворукие программисты, это хитрожопые маркетологи. Программисты бы рады туда формулу написать, но маркетологи сказали: "Нефиг! Так хотя бы у еврейских и мусульманских пользователей будет желание сапгрейдиться на Outlook 2003"
Tuesday, February 6th, 2007 07:10 am (UTC)
Хитрожопость вторых вполне уживается с криворукостью первых. Скажу больше, как правило, оба качества порождаются одновременно особенностями стратегии и руководства фирмы.
Tuesday, February 6th, 2007 09:44 am (UTC)
А разве он не был високосным?
Tuesday, February 6th, 2007 09:59 am (UTC)
Не, серьёзно. Каждые четыре года, разве нет?
Tuesday, February 6th, 2007 10:07 am (UTC)
не вы писали excel ? :) а в действительности несколько реже чем каждый четвертый

P.S. я кстати чаше слышал такой подход к расчету високосности чем правильный
Tuesday, February 6th, 2007 10:10 am (UTC)
А что в этом подходе неправильного?
Если можно, без высмеивания моей непроходимой глупости :(
Tuesday, February 6th, 2007 10:17 am (UTC)
... the current standard calendar in most of the world, adds a 29th day to February in all years evenly divisible by 4, except for centennial years (those ending in -00), which receive the extra day only if they are evenly divisible by 400. Thus 1600, 2000 and 2400 are leap years but 1700, 1800, 1900 and 2100 are not ...
Tuesday, February 6th, 2007 10:26 am (UTC)
О! спасибо!
Tuesday, February 6th, 2007 11:27 am (UTC)
не думаю что расчет всех возможных религиозных и обычных праздников так же тривиален как определение високосности года.
Tuesday, February 6th, 2007 05:39 pm (UTC)
Ох чую я уже Баг 8000 :)