даты, разница между двумя датами |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
даты, разница между двумя датами |
compiler |
20.02.2007 13:58
Сообщение
#1
|
Человек Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: 3 |
Существуют две даты. Необходимо учитывая высокосные года найти разницу (в днях).
Идей нет. В ЧаВо ничего не нашел. Заранее благодарен. -------------------- Спасибо!
Удачи! |
volvo |
20.02.2007 14:10
Сообщение
#2
|
Гость |
Идей совсем нет? Ну, тогда попробуй найти номер дня в текущем году для каждой даты (это было в FAQ-е), и количество високосных лет между заданными годами. Дальше догадаешься?
|
compiler |
20.02.2007 15:07
Сообщение
#3
|
Человек Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: 3 |
Идей совсем нет? В Фаранове написано так Цитата Предлагаемый алгоритм подсчета количества дней заключается в вычислении количества дней от даты рождения до конца месяца, а затем и года рождения, количества дней, от начала текущего года до текущего месяца и текущей даты, а также - в подсчете количества полных лет, разделяющих обе даты. Количество лет затем легко пересчитывается в количество дней с учетом длины года (365 дней для обычных и 366 дней для високосных лет). Это очень прямолинейный алгоритм, но, откровенно говоря, мне не пришло в голову ничего другого. Возможно, существует более изящный способ подсчета и Вы его знаете, тогда программная реализация будет другой. Вот я и подумал может действительно есть более изящный способ... -------------------- Спасибо!
Удачи! |
Malice |
20.02.2007 16:15
Сообщение
#4
|
Профи Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: 20 |
|
volvo |
20.02.2007 16:16
Сообщение
#5
|
Гость |
Цитата может действительно есть более изящный способ FPC + DateUtils = более изящно... Просто в одну строку... |
compiler |
20.02.2007 17:32
Сообщение
#6
|
Человек Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: 3 |
Malice
Было уже: Класс календаря. ты имееш ввиду эту функцию function days (y,m,d:integer):longint; А не могла бы ты ее обьяснить... volvo FPC + DateUtils = более изящно... Просто в одну строку... а по подробней... (может ссылочка есть или так расскажеш) Сообщение отредактировано: compiler - 20.02.2007 17:38 -------------------- Спасибо!
Удачи! |
Malice |
20.02.2007 18:02
Сообщение
#7
|
Профи Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: 20 |
ты имееш ввиду эту функцию А не могла бы ты ее обьяснить... А чего объяснять, работает и слава богу Примерно так: *365.25 раз в 4 года из 0.25 накопится 1-ца и получится 366.. -int(y/100) - если год делится на 100 убрали ту накопившуюся 1-цу +int (y/400) - упс, вернули обратно.. +int ((m+1)*30.601) - тоже что-то копится и округляется в нужный момент. +d - тупо прибавили дни.. |
compiler |
20.02.2007 18:08
Сообщение
#8
|
Человек Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: 3 |
А чего объяснять, работает и слава богу как в анекдоте про программера, сына, и солнце... +int ((m+1)*30.601) - тоже что-то копится и округляется в нужный момент.- а что? -------------------- Спасибо!
Удачи! |
Malice |
20.02.2007 18:11
Сообщение
#9
|
Профи Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: 20 |
|
compiler |
20.02.2007 18:13
Сообщение
#10
|
Человек Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: 3 |
Количество дней в месяце m вестимо.. как то не нравится мне всё это... да еще и округление... -------------------- Спасибо!
Удачи! |
Malice |
20.02.2007 18:20
Сообщение
#11
|
Профи Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: 20 |
|
compiler |
20.02.2007 18:26
Сообщение
#12
|
Человек Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: 3 |
Хотя и это работает нормально, куда уж изящнее.. наверняка есть колизии ведь тут применяется округление... -------------------- Спасибо!
Удачи! |
volvo |
20.02.2007 21:41
Сообщение
#13
|
Гость |
Цитата(compiler @ 20.02.2007 16:32) а по подробней... (может ссылочка есть или так расскажеш) А чего рассказывать? uses sysutils, dateutils;Изобретаем велосипед дальше? |
Bard |
24.02.2007 14:19
Сообщение
#14
|
Учиться, учиться еще раз учиться Группа: Пользователи Сообщений: 158 Пол: Мужской Реальное имя: Яшар Репутация: 3 |
pomoqite reshit' ili nayti alqoritm zadachi na datu. -------------------- Чтобы поразить цель важна не точность, а смелость
Шарль Луи Монтескё |
volvo |
24.02.2007 14:23
Сообщение
#15
|
Гость |
Вот тут есть все функции, необходимые для решения:
Задачи связанные с календарем. |
Текстовая версия | 25.04.2024 4:45 |