2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Определение середины временного промежутка (С++)
Сообщение10.10.2012, 16:30 
Аватара пользователя


17/12/10
538
Хочу сделать программу на C++ которая определяла бы середину временного промежутка, например вводишь 19.00 и 21.00 она выводила бы 20.00.

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

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

 Профиль  
                  
 
 Re: Определение середины временного промежутка (С++)
Сообщение10.10.2012, 18:39 


10/04/12
705
Если временной промежуток задан без даты, то проще все перевести в минуты (int) и работать с ним. Если временной промежуток включает дату, то ее можно перевести во float/double формат (OLE-представление времени или юлианская дата) и работать уже с ней. Заодно поискать библиотеки, которые бы осуществили нужное преобразование.

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


30/01/06
72407
Превратить в число. Выполнять какую угодно арифметику. Превратить обратно во время.

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

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

 Профиль  
                  
 
 Re: Определение середины временного промежутка (С++)
Сообщение10.10.2012, 19:18 
Заслуженный участник


27/04/09
28128
Sverest в сообщении #629109 писал(а):
считать счетчиком в цикле минуты
Циклы здесь не нужны. Как вы хотите сюда вписать цикл?

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


17/12/10
538
нашел функцию difftime <time.h>
Код:
double difftime( time_t t2, time_t t1 )


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

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

 Профиль  
                  
 
 Re: Определение середины временного промежутка (С++)
Сообщение10.10.2012, 21:30 
Заслуженный участник


27/04/09
28128
Очевидно, time_t. Посмотрите, как этот тип определяется и вообще какие ещё функции с ним работают — может, найдётся конструктор.

 Профиль  
                  
 
 Re: Определение середины временного промежутка (С++)
Сообщение10.10.2012, 22:13 


10/04/12
705
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 
Аватара пользователя


17/12/10
538
Оказывается, можно было в excel ввести в ячейки значения в формате "время" и вычислить обычной формулой))

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group