Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Dmitry V. Liseev                     2:5020/400     29 Apr 2002  16:06:11
 To : Alex E. Shestopalov
 Subject : Re: "Вечный календарь"
 -------------------------------------------------------------------------------- 
 
 Alex E. Shestopalov <linker@viii.ntu-kpi.kiev.ua> wrote in message
 news:aaf3ha$1kf1$1@igloo.uran.net.ua...
 
 Hi!
 
 > > А в чем проблема? Вычисляешь разницу в днях между текущей датой
 > > и некоторым "базисом". Hапример 1 января 1600 года. Прибавляешь
 > > требуемое количество дней и конвертируешь обратно в год, месяц
 > > и день. Остаток от деления на 365, 31 и т.д. умеешь считать?
 >
 > Hу вообще-то не всегда год имеет 365, а месяц 31 день.
 
 Количество дней в "высокосном" 4-летии : 366+365*3=1461
 Количество дней в "невысокосном" 4-летии : 365*4=1460
 Количество дней в "высокосном" столетии: 25*1461=36525
 Количество дней в "невысокосном" столетии: 1460+24*1461=36524
 Количество дней в одном 400-летии: 36525+36524*3=146097
 
 Если у тебя кол-во дней с 1.01.1600, то делишь на 146097
 Получаешь кол-во 400-летий и остаток - кол-во дней с начала
 400-летия. Из этого остатка вычитаешь первое столетие 36525,
 а если осталось больше 36524, то делишь на 36524.
 В результате получаешь конкретное столетие в ранее
 найденном 400-летии и остаток - кол-во дней в с начала столетия.
 Если ты попал в первое (высокосное) столетие, делишь на 1461,
 а если попал в следующие 3 столетия (невысокосных), то вычитаешь
 1460 и делишь на 1461. Соответственно получишь конкретное 4-летие
 и смещение в нем в днях. Дальше рассказывать? Все, что нужно,
 это уметь делить нацело и вычислять остаток.
 
 > > Количество дней в каждом месяце года хранишь в массиве.
 > > В году 365 дней. В високосном - 366.
 > Hу батенька это вы дали!
 > В высокосном - 365(!) дней, а в обычном - 364.
 
 1 апреля закончилось 28 дней назад. Следующее через 337 дней.
 
 > > Дальше правило такое: если
 > > год кратен 4 - он високосный, но если он кратен 100 - он уже
 > > не високосный (1900, 2100, 2200), а вот если кратен 400 - он опять
 > > високосный (2000, 2400, 2800).
 
 ____________________________
 С уважением, Лисеев Дмитрий.
 http://private.peterlink.ru/dimik/
 PGP key fingerprint: 09 28 74 28 6C 39 62 29   2E CB 95 03 4F 04 33 73
 --- ifmail v.2.15dev5
  * Origin: Peterlink News System (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 "Вечный календарь"   Alex E. Shestopalov   26 Apr 2002 00:53:18 
 Re: "Вечный календарь"   Dmitry V. Liseev   27 Apr 2002 19:18:15 
 Re: "Вечный календарь"   Alex E. Shestopalov   28 Apr 2002 01:01:44 
 Re: "Вечный календарь"   Evgenij Masherov   28 Apr 2002 08:38:35 
 Re: "Вечный календарь"   Alex E. Shestopalov   28 Apr 2002 21:01:30 
 "Вечный календарь"   Alexander Chelmodeev   29 Apr 2002 11:17:12 
 Re: "Вечный календарь"   Dmitry V. Liseev   29 Apr 2002 16:06:11 
 "Вечный календаpь"   Alexander V. Lushnikov   01 May 2002 14:05:16 
 Re: "Вечный календарь"   Dmitry V. Liseev   29 Apr 2002 16:12:19 
 Re: "Вечный календарь"   Vitaly Slobodskoy   27 Apr 2002 13:20:13 
 "Вечный календарь"   Dmitriy Kazimirow   30 Apr 2002 14:04:46 
Архивное /ru.algorithms/20753cc632a1b.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional