Форум программистов, компьютерный форум CyberForum.ru

Как сложить две временные отметки в виде дни часы: минуты: секунды - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
katua18
 Аватар для katua18
4 / 0 / 0
Регистрация: 25.10.2013
Сообщений: 68
12.08.2014, 12:40     Как сложить две временные отметки в виде дни часы: минуты: секунды #1
Здравствуйте! Подскажите пожалуйста, как сложить две временные отметки в виде дни часы: минуты: секунды? Спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.08.2014, 12:40     Как сложить две временные отметки в виде дни часы: минуты: секунды
Посмотрите здесь:

Как правильно вывести часы минуты и секунды в функции C++
C++ Как перевести секунды в часы, минуты и секунды
C++ Преобразовать период времени p, заданный в секундах (p<=86400) в часы, минуты и секунды, результат вывести в виде чч:мм:сс .
Перевод секунд в часы,минуты и секунды C++
C++ Определить текущий день недели, год, месяц, число, а также текущее время-часы, минуты, секунды, сотые доли секунды.
Написать класс Время (часы, минуты, секунды) C++
C++ Программа, которая переводит часы и минуты в минуты или минуты – в часы и минуты
C++ Часы, минуты, секунды - операция сложения
C++ Функция, переводящая количество секунд в часы, минуты, секунды
Перевод в часы, минуты и секунды для структурных переменных C++
C++ Перевод из секунд в часы, минуты, секунды
C++ Перевод секунд в дни часы минуты секунды

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
takhvatulin
10 / 10 / 0
Регистрация: 04.04.2014
Сообщений: 140
12.08.2014, 12:55     Как сложить две временные отметки в виде дни часы: минуты: секунды #2
C++
1
2
3
4
5
6
7
8
9
10
int hh1;
int hh2;
int hh;
 
if(hh1 + hh2 > 23)
{
      hh = h1 + h2 - 24;
}
else
hh = h1+ h2;
и в том же духе минуты и секунды
engine76
2 / 2 / 0
Регистрация: 04.03.2014
Сообщений: 65
12.08.2014, 13:00     Как сложить две временные отметки в виде дни часы: минуты: секунды #3
Можно через if, для секунд как то так:
C++
1
2
3
4
5
6
7
8
9
if((seconds1 + seconds2) <= 60)
{
    totalSeconds = seconds1 + seconds2;
}
else
{
    totalSeconds = seconds1 + seconds2 - 60;
    totalMinutes++;
}
где seconds1 и seconds2 первая и вторая отметки секунд, totalSeconds - количество секунд в новой отметке(после сложения), а totalMinutes - новая отметка минут. И такое условие для всех дней, часов, минут.
avg93
61 / 61 / 10
Регистрация: 11.12.2009
Сообщений: 247
Завершенные тесты: 3
12.08.2014, 13:07     Как сложить две временные отметки в виде дни часы: минуты: секунды #4
Цитата Сообщение от katua18 Посмотреть сообщение
Здравствуйте! Подскажите пожалуйста, как сложить две временные отметки в виде дни часы: минуты: секунды? Спасибо!
Если их нужно с консоли считывать то рекомендую scanf
C++
1
2
int h, m, s;
scanf("%d:%d:%d",&h,&m,&s);
some_name
Вежливость-главное оружие
 Аватар для some_name
219 / 219 / 55
Регистрация: 19.02.2013
Сообщений: 1,423
12.08.2014, 14:11     Как сложить две временные отметки в виде дни часы: минуты: секунды #5
Лови!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include "stdafx.h"
#include <iostream>
  
class Date{
public:
    int seconds, minutes, hours;    
    Date(int h, int m, int s) : hours(h), minutes(m), seconds(s) {}
    Date& operator + (const Date& date) const;
    friend std::ostream& operator << (std::ostream& os, const Date& dt);
};
 
Date& Date::operator + (const Date& date) const{
        Date result(0, 0, 0);
        int rest, delta;
 
        rest = (seconds + date.seconds) % 60;
        delta = (seconds + date.seconds) / 60;
        result.seconds = rest;
 
        rest = (minutes + date.minutes + delta) % 60;
        delta = (minutes + date.minutes + delta) / 60;
        result.minutes = rest;
 
        result.hours = (hours + date.hours + delta) % 24;
 
        return result;
    }
 
std::ostream& operator << (std::ostream& out, const Date& date)
{
    out << date.hours << ':' << date.minutes << ':' << date.seconds;
    return out;
}
 
int main() {
 
    Date date1(22, 12, 5), date2(11, 6, 22);
    Date date3 = date1 + date2;
    std::cout << date3;
    getchar();
}
Андрей Xomach
8 / 8 / 0
Регистрация: 22.01.2012
Сообщений: 59
12.08.2014, 14:24     Как сложить две временные отметки в виде дни часы: минуты: секунды #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
t1.s += t2.s;
t1.m += t1.s / 60;
t1.s %= 60;
 
t1.m += t2.m;
t1.h += t1.m / 60;
t1.m %= 60;
 
t1.h += t2.h;
t1.d += t1.h / 24;
t1.h %= 24;
 
t1.d += t2.d
Добавлено через 3 минуты
а еще можно вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
int t = t1.s + t2.s + 60 * (t1.m + t2.m) + 3600 * (t1.h + t2.h) + 24 * 3600 * (t1.d + t2.d);
 
t1.s = t % 60;
t /= 60;
 
t1.m = t % 60;
t /= 60;
 
t1.h = t % 24;
t /= 24;
 
t1.d = t;
В обоих случаях результат в t1, а t1 и t2 - простейшие структурки из 3 полей
Yandex
Объявления
12.08.2014, 14:24     Как сложить две временные отметки в виде дни часы: минуты: секунды
Ответ Создать тему
Опции темы

Текущее время: 16:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru