|
|
|
Подскажите с алгоритмом: посчитать кол-во дней с определенной датой
|
|||
|---|---|---|---|
|
#18+
Приветствую Нужно посчитать точное кол-во дней, прошедшее с 01 Января 1960 года. Собственно, как лучше учитывать високосные годы? Да и с месяцами как-то не очень понятно, неужели для каждого месяца учитывать свое кол-во дней.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2008, 03:45 |
|
||
|
Подскажите с алгоритмом: посчитать кол-во дней с определенной датой
|
|||
|---|---|---|---|
|
#18+
в эпичном треде про с++ решали такую задачу на всяких разных языках в качестве демонстрации их кошерности, можно там посмотреть) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2008, 04:29 |
|
||
|
Подскажите с алгоритмом: посчитать кол-во дней с определенной датой
|
|||
|---|---|---|---|
|
#18+
Ок, а "эпичный тред про С++" это где? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2008, 04:47 |
|
||
|
Подскажите с алгоритмом: посчитать кол-во дней с определенной датой
|
|||
|---|---|---|---|
|
#18+
тут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2008, 04:59 |
|
||
|
Подскажите с алгоритмом: посчитать кол-во дней с определенной датой
|
|||
|---|---|---|---|
|
#18+
Чего-то я так увлекся забавным срачем на первых страницах того топика, что не нашел в себе сил искать дальше :) Да и без этого написал скрипт, все считает.. вот только одно но. Имеется расхождение в несколько дней у моего результата и данными, которые я выдергиваю из AD vbs скриптом.. Кто-нибудь может независимо посчитать сколько дней прошло от 01/01/1601 до 01/01/2008? У меня вышло 148657дней, контроллер домена упорно считает, что 148652 Кто прав? :) В принципе, для моей задачи 5 дней туда-сюда не критичны, но все-таки где ошибка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2008, 10:30 |
|
||
|
Подскажите с алгоритмом: посчитать кол-во дней с определенной датой
|
|||
|---|---|---|---|
|
#18+
gbcfk(f)^сколько дней прошло от 01/01/1601 до 01/01/2008? У меня вышло 148657дней, контроллер домена упорно считает, что 148652 За это время вообще-то сменился стиль календаря, причем в разных странах это происходило по-разному. В России, например, в 1918 году вообще 14 дней по...(теря)ли для революционной целесообразности. Контроллер домена в курсе, что такое революционная целесообразность? Короче, ищите старожилов :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2008, 11:44 |
|
||
|
Подскажите с алгоритмом: посчитать кол-во дней с определенной датой
|
|||
|---|---|---|---|
|
#18+
Cane Cat FisherЗа это время вообще-то сменился стиль календаря, причем в разных странах это происходило по-разному. В России, например, в 1918 году вообще 14 дней по...(теря)ли для революционной целесообразности. Контроллер домена в курсе, что такое революционная целесообразность? Короче, ищите старожилов :-) (..лекторским голосом..) Между прочим, эта дата (1 Января 1601 года... понедельник) является международным стандартом в некоторых областях, этакой точкой отсчета - началом начал (и вот не надо меня спрашивать, нафига так сделали) Например, многие даты в AD считаются как число 100наносекундных интервалов, прошедших с 01/01/1601 до настоящего момента ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2008, 13:19 |
|
||
|
Подскажите с алгоритмом: посчитать кол-во дней с определенной датой
|
|||
|---|---|---|---|
|
#18+
надо юзать библиотечные функции. потому что задача сама по себе не простая. если почему-то надо изобрести велосипед, читаем умную книжку, например "Calendrical Calculations" (Dershowitz, Reingold) _______________________________________ 2pro4U ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2008, 13:25 |
|
||
|
Подскажите с алгоритмом: посчитать кол-во дней с определенной датой
|
|||
|---|---|---|---|
|
#18+
Frenzy Да я понимаю, что изобрел велосипед... Да и какие в данном случае библиотечные функции можно использовать в vbs? Просто прошу, кому не сложно, проверить полученное число дней :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2008, 13:36 |
|
||
|
Подскажите с алгоритмом: посчитать кол-во дней с определенной датой
|
|||
|---|---|---|---|
|
#18+
gbcfk(f)^Просто прошу, кому не сложно, проверить полученное число дней :) postgresql: Код: plaintext 1. 2. 3. 4. 5. Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2008, 14:14 |
|
||
|
Подскажите с алгоритмом: посчитать кол-во дней с определенной датой
|
|||
|---|---|---|---|
|
#18+
Oracle 9ir2 Select to_date('01.01.2008', 'dd.mm.yyyy') - to_date('01.01.1601', 'dd.mm.yyyy') from dual 148653 VFP8.0 ?{^2008-01-01}-{^1601-01-01} 148653 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2008, 14:29 |
|
||
|
Подскажите с алгоритмом: посчитать кол-во дней с определенной датой
|
|||
|---|---|---|---|
|
#18+
Ёш Tamozhnya Вы сговорились? Шучу :) Значит 148653.. То, что я где-то ошибся это вполне возможно.. Странно, что с AD на 1 день разница вышла.. будем думать Спасибо за отклик ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2008, 15:06 |
|
||
|
Подскажите с алгоритмом: посчитать кол-во дней с определенной датой
|
|||
|---|---|---|---|
|
#18+
В AD скорее всего считают по формуле наподобие 365N + Floor(N/4) + L, где N количество полных лет, а L - количество дней неполного года. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2008, 19:20 |
|
||
|
Подскажите с алгоритмом: посчитать кол-во дней с определенной датой
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2008, 13:28 |
|
||
|
Подскажите с алгоритмом: посчитать кол-во дней с определенной датой
|
|||
|---|---|---|---|
|
#18+
Всё это конечно замечательно... НО Теорема (о кол-ве дней): С 01.01.1601 по 31.12.2007 включительно прошло РОВНО 148656 дней. Это доказывает скрупулезное вычисление карандашиком на бумажке ДОКАЗАТЕЛЬСТВО : 1) полных лет прошло: 2007-1601+1=407 2) из них високосных было 101 штука 3) значит невисокосных было 306 штук Итого: кол-во дней = 306*365 + 101*366 = 148656 Ну никак 148653 не выходит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2008, 06:44 |
|
||
|
Подскажите с алгоритмом: посчитать кол-во дней с определенной датой
|
|||
|---|---|---|---|
|
#18+
gbcfk(f)^ 2) из них високосных было 101 штука если вы считаете чисто математически, високосных было 98: авторИными словами, год является високосным, если он кратен 4 и при этом не кратен 100, либо кратен 400. Код: plaintext 1. 2. авторДаты перехода стран на григорианский календарь 1582 — Италия, Испания, Португалия, Польша, Франция, Лотарингия, Голландия, Люксембург, Великое княжество Литовское. 1583 — Австрия (часть), Бавария, Тироль. 1584 — Австрия (часть), Швейцария, Силезия, Вестфалия. 1587 — Венгрия. 1610 — Пруссия. 1700 — протестантские немецкие государства, Дания (включая Норвегию). 1752 — Великобритания и колонии. 1753 — Швеция (включая Финляндию). 1873 — Япония. 1911 — Китай. 1912 — Албания. 1916 — Болгария. 1918 — Советская Россия. 1919 — Сербия, Румыния. 1924 — Греция. 1927 — Турция. 1928 — Египет. Вы для какой страны считаете ? :) автор1610 — Пруссия. 1700 — протестантские немецкие государства, Дания (включая Норвегию). 1752 — Великобритания и колонии. 1753 — Швеция (включая Финляндию). 1873 — Япония. 1911 — Китай. 1912 — Албания. 1916 — Болгария. 1918 — Советская Россия. 1919 — Сербия, Румыния. 1924 — Греция. 1927 — Турция. 1928 — Египет.в этих странах переход на григорианский календарь попадает в Ваш промежуток и по хорошему как минимум для них нужно вычитать ещё эндцать дней, так как их реально небыло, календарь был сдвинут на эндцать дней вперёд :) ps: но БД как ни странно кладут на реальное количество дней и такую коррекцию не делают %) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2008, 09:44 |
|
||
|
Подскажите с алгоритмом: посчитать кол-во дней с определенной датой
|
|||
|---|---|---|---|
|
#18+
В данном случае, АД считает високосными годаме все года начиная с 1600 кратные четырем. И их было с 1601-го ровно 101. Ну и, само собой, никакие смены календарей не учитываются :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2008, 10:21 |
|
||
|
Подскажите с алгоритмом: посчитать кол-во дней с определенной датой
|
|||
|---|---|---|---|
|
#18+
Стоп! А ведь действительно, если года, кратные 4 и 100, но не кратные 400 не являются високосными, то итоговое кол-во дней по моим подсчетам = 148653 Итого имеем расхождение с АД на 1 день Ёш Благодарю, кто бы мог подумать, что 1700, 1800 и 1900 года не високосные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2008, 10:29 |
|
||
|
|

start [/forum/topic.php?fid=16&gotonew=1&tid=1344910]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
163ms |
get topic data: |
7ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 496ms |

| 0 / 0 |
