2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Определение середины временного промежутка (С++)
Сообщение10.10.2012, 16:30 
Аватара пользователя
Хочу сделать программу на C++ которая определяла бы середину временного промежутка, например вводишь 19.00 и 21.00 она выводила бы 20.00.

Мысли такие: считать счетчиком в цикле минуты, поделить на 2
посчитать от начального времени до нового значения счетчика

какие в C++ существуют операции со временем?
Есть ли путь легче?

 
 
 
 Re: Определение середины временного промежутка (С++)
Сообщение10.10.2012, 18:39 
Если временной промежуток задан без даты, то проще все перевести в минуты (int) и работать с ним. Если временной промежуток включает дату, то ее можно перевести во float/double формат (OLE-представление времени или юлианская дата) и работать уже с ней. Заодно поискать библиотеки, которые бы осуществили нужное преобразование.

 
 
 
 Re: Определение середины временного промежутка (С++)
Сообщение10.10.2012, 19:10 
Аватара пользователя
Превратить в число. Выполнять какую угодно арифметику. Превратить обратно во время.

По сути, время - это число, записанное в неудобной системе счисления: 60 секунд, 60 минут, 24 часа, 365 дней (если не мельчить, что было бы ещё неудобнее), дальше число лет.

Кстати, наша позиционная система счисления происходит из таких неудобных систем, применявшихся для расстояния, веса, денег. Первоначально даже не было понятия о целой части и дробной части числа, а число рассматривалось состоящим из "больших" частей и "малых" частей, как денежная сумма выражается каким-то количеством рублей и каким-то количеством копеек. Сотня называлась "большим десятком", тысяча - "большой сотней", миллион (или 10 000) - "большой тысячей", миллиард - "большим миллионом".

 
 
 
 Re: Определение середины временного промежутка (С++)
Сообщение10.10.2012, 19:18 
Sverest в сообщении #629109 писал(а):
считать счетчиком в цикле минуты
Циклы здесь не нужны. Как вы хотите сюда вписать цикл?

 
 
 
 Re: Определение середины временного промежутка (С++)
Сообщение10.10.2012, 20:46 
Аватара пользователя
нашел функцию difftime <time.h>
Код:
double difftime( time_t t2, time_t t1 )


функция возвращает разницу времен (t2-t1) в секундах

в каком формате должно быть записано время?

 
 
 
 Re: Определение середины временного промежутка (С++)
Сообщение10.10.2012, 21:30 
Очевидно, time_t. Посмотрите, как этот тип определяется и вообще какие ещё функции с ним работают — может, найдётся конструктор.

 
 
 
 Re: Определение середины временного промежутка (С++)
Сообщение10.10.2012, 22:13 
Sverest в сообщении #629232 писал(а):
нашел функцию difftime <time.h>
Код:
double difftime( time_t t2, time_t t1 )


функция возвращает разницу времен (t2-t1) в секундах

в каком формате должно быть записано время?


time_t это внутренний формат, детали реализации которого зависят от конкретной платформы. Значения этого типа возвращают функции time, mktime, и т. д.

 
 
 
 Re: Определение середины временного промежутка (С++)
Сообщение20.11.2012, 19:05 
Аватара пользователя
Оказывается, можно было в excel ввести в ячейки значения в формате "время" и вычислить обычной формулой))

 
 
 [ Сообщений: 8 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group