|
Модераторы: bsa |
|
Azart11 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 21.9.2012 Репутация: нет Всего: нет |
Помогите плиз...
Разработать программу, определяющую число часов, прошедших между двумя датами, введенными пользователем. Идей нет) Это сообщение отредактировал(а) Azart11 - 30.9.2012, 16:52 |
|||
|
||||
Данкинг |
|
|||
Yersinia pestis Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: нет Всего: 130 |
Это приказ?
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
NoviceF |
|
||||
Опытный Профиль Группа: Участник Сообщений: 313 Регистрация: 13.3.2012 Где: Ростов-на-Дону Репутация: 2 Всего: 2 |
Добавлено через 54 секунды
А в каком формате будет дата вводиться? |
||||
|
|||||
tzirechnoy |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: -1 Всего: 16 |
Это методы внушэния...
|
|||
|
||||
mes |
|
|||
любитель Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
Azart11, опoздали, уже разработано : http://www.boost.org/doc/libs/1_51_0/doc/html/date_time.html
Это сообщение отредактировал(а) mes - 30.9.2012, 16:03 |
|||
|
||||
feodorv |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
Как-то всё больше и больше замечаю, что народ утрачивает культуру общения. Весьма не мешает уточнить условие задачи. Нужно считать самому или можно положиться на машину? Если последнее, то можно просто перевести даты в формат UTC time_t или FILETIME/ULARGE_INTEGER, потом вычесть из одного значения другое и разделить на число секунд или 100-наносекунд в часе. И всё. Если же первое, то нужно будет не забыть принять во внимание високосность того или иного года. -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
Данкинг |
|
|||
Yersinia pestis Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: нет Всего: 130 |
У Azart11, и прошлая тема примерно такая же по стилю общения. -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
mes |
|
|||
любитель Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
чего тут не найти ? http://www.boost.org/doc/libs/1_51_0/doc/h...e_time.examples выбирай на вкус и допиливай под нужды.. Это сообщение отредактировал(а) mes - 30.9.2012, 19:09 |
|||
|
||||
Azart11 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 21.9.2012 Репутация: нет Всего: нет |
Вот моя программа работает не правильно... скажите пожалуйста как исправить... |
|||
|
||||
bsa |
|
|||
Эксперт Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
сначала заполняешь struct tm, затем вызываешь mktime() и получаешь time_t. Это делаешь для двух дат. С помощью difftime() делаешь вычитание и получаешь количество секунд. Наконец, делишь полученное число на 3600 и на выходе у тебя количество часов.
|
|||
|
||||
feodorv |
|
||||||
Эксперт Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
Azart11, направление мысли - правильное
Считаем число часов от сотворения мира начала времён, а потом смотрим разницу. Но всё нужно делать аккуратно. Разбейте задачу на две подзадачи - подсчёт числа дней до начата текущего года и подсчёт числа часов с начала текущего года. Первая подзадача требует учёта високосных лет. В лоб подзадача может быть решена так:
(на самом деле цикл не нужен, можно всё вычислить сразу, но это будет домашним заданием ) Отсчёт идёт от 1, а не от 0 (0-го года как такового нет, но это не принципиально, поскольку потом будем брать разницу подсчитанных значений). Вторую подзадачу можно решить аналогичным подсчётом числа дней, прошедших с начала года:
(тут тоже цикла можно избежать, если ввести массив не числа дней в месяце, а массив числа дней, прошедших с начала года, для данного месяца.) Окончательный подсчёт:
А что у Вас?
Добавлено через 1 минуту и 49 секунд Ну, или если ручной подсчёт необязателен, и можно положиться на машину, то -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
||||||
|
|||||||
feodorv |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
Походу оказалось, что неправильно определяется високосный год:
-------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
xvr |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
||||
|
||||
feodorv |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
Точно! Не заметил))) -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |