даты, разница между двумя датами |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
даты, разница между двумя датами |
compiler |
Сообщение
#1
|
Человек Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: 3 |
Существуют две даты. Необходимо учитывая высокосные года найти разницу (в днях).
Идей нет. В ЧаВо ничего не нашел. Заранее благодарен. -------------------- Спасибо!
Удачи! |
volvo |
Сообщение
#2
|
Гость |
Идей совсем нет? Ну, тогда попробуй найти номер дня в текущем году для каждой даты (это было в FAQ-е), и количество високосных лет между заданными годами. Дальше догадаешься?
|
compiler |
Сообщение
#3
|
Человек Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: 3 |
Идей совсем нет? В Фаранове написано так Цитата Предлагаемый алгоритм подсчета количества дней заключается в вычислении количества дней от даты рождения до конца месяца, а затем и года рождения, количества дней, от начала текущего года до текущего месяца и текущей даты, а также - в подсчете количества полных лет, разделяющих обе даты. Количество лет затем легко пересчитывается в количество дней с учетом длины года (365 дней для обычных и 366 дней для високосных лет). Это очень прямолинейный алгоритм, но, откровенно говоря, мне не пришло в голову ничего другого. Возможно, существует более изящный способ подсчета и Вы его знаете, тогда программная реализация будет другой. Вот я и подумал может действительно есть более изящный способ... -------------------- Спасибо!
Удачи! |
Malice |
Сообщение
#4
|
Профи Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: 20 |
|
compiler |
Сообщение
#5
|
Человек Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: 3 |
Malice
Было уже: Класс календаря. ты имееш ввиду эту функцию function days (y,m,d:integer):longint; А не могла бы ты ее обьяснить... volvo FPC + DateUtils = более изящно... Просто в одну строку... а по подробней... (может ссылочка есть или так расскажеш) Сообщение отредактировано: compiler - -------------------- Спасибо!
Удачи! |
Malice |
Сообщение
#6
|
Профи Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: 20 |
ты имееш ввиду эту функцию А не могла бы ты ее обьяснить... А чего объяснять, работает и слава богу Примерно так: *365.25 раз в 4 года из 0.25 накопится 1-ца и получится 366.. -int(y/100) - если год делится на 100 убрали ту накопившуюся 1-цу +int (y/400) - упс, вернули обратно.. +int ((m+1)*30.601) - тоже что-то копится и округляется в нужный момент. +d - тупо прибавили дни.. |
compiler |
Сообщение
#7
|
Человек Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: 3 |
А чего объяснять, работает и слава богу как в анекдоте про программера, сына, и солнце... +int ((m+1)*30.601) - тоже что-то копится и округляется в нужный момент.- а что? -------------------- Спасибо!
Удачи! |
Malice |
Сообщение
#8
|
Профи Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: 20 |
|
compiler |
Сообщение
#9
|
Человек Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: 3 |
Количество дней в месяце m вестимо.. как то не нравится мне всё это... да еще и округление... -------------------- Спасибо!
Удачи! |
Malice |
Сообщение
#10
|
Профи Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: 20 |
|
compiler |
Сообщение
#11
|
Человек Группа: Пользователи Сообщений: 1 050 Пол: Мужской Реальное имя: Станислав Репутация: 3 |
Хотя и это работает нормально, куда уж изящнее.. наверняка есть колизии ведь тут применяется округление... -------------------- Спасибо!
Удачи! |
Текстовая версия | 13.10.2024 20:57 |