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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
bgm123
39 / 39 / 16
Регистрация: 29.01.2013
Сообщений: 277
#1

Вычислить время. Функция time - C++

02.02.2013, 17:03. Просмотров 729. Ответов 5
Метки нет (Все метки)

Всем привет. С помощью функции time требуется вычислить текущее время. Код я написал ниже. Мой код работает почти правильно, но количество часов почему-то меньше на 4, чем должно быть (см. фото). Остальные данные выводятся верно.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <time.h>
using namespace std;
 
 
int main(void){
    int min, sec, hour;
    time_t timer, hold;
 
    timer = time(NULL) % 86400;
    sec = timer % 60;
 
    hold = (timer - sec) / 60;  //количество часов и минут в минутах
    min = hold % 60;
    hour = (hold - min) / 60;
 
    
    cout << hour << ":" << min << ":" << sec << endl;
    
    return 0;
}
Миниатюры
Вычислить время. Функция time  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.02.2013, 17:03     Вычислить время. Функция time
Посмотрите здесь:

C++ Функция, которая увеличивает на Т секунд время
C++ Функция time для вычисления скорости нахождения Определителя.Dev-C++7.3.1.3
C++ Функция time()
C++ Функция: Написать функцию next(t, t1, d), которая присваивает параметру t1 время на d секунд больше, чем время t.
C++ Не могу разобраться с заданием "Создайте класс Time с конструкторами Time(), Time( int hour)......"
C++ Функция time(0) для чего тут нужна?
C++ Функция time
Напишите конструктор для инициализации объекта класса Time, который может использовать текущее время, возвращаемое функцией time (). C++
Класс "Время". Двусмысленность между time и std:time(long*) C++
Как преобразовать время из строки в Unix Time? C++
C++ Что делает функция time?
C++ Compile-time и run-time методы и функции

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
bgm123
39 / 39 / 16
Регистрация: 29.01.2013
Сообщений: 277
02.02.2013, 17:16  [ТС]     Вычислить время. Функция time #2
Вот добавил комментарии к коду:

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
int main(void){
    int min, sec, hour;
    time_t timer, hold;
 
    timer = time(NULL) % 86400; //время от 00:00:00 в секундах за последние сутки
 
    //переводи timer в нормальное время
 
    //получаем секунды
    sec = timer % 60;         
 
    //находим количество часов и минут в минутах
    hold = (timer - sec) / 60;  
 
    //находим количество минут
    min = hold % 60;
 
    //находим количество часов
    hour = (hold - min) / 60;
 
    //вывод всегда на 4 часа меньше. ПОЧЕМУ????
    cout << hour << ":" << min << ":" << sec << endl;
    
    return 0;
}
varostislav
3 / 3 / 0
Регистрация: 30.09.2012
Сообщений: 49
02.02.2013, 17:21     Вычислить время. Функция time #3
C++
1
hour = (hold - min) / 48;
bgm123
39 / 39 / 16
Регистрация: 29.01.2013
Сообщений: 277
02.02.2013, 17:27  [ТС]     Вычислить время. Функция time #4
Цитата Сообщение от varostislav Посмотреть сообщение
hour = (hold - min) / 48;
Почему так? Объясните.
varostislav
3 / 3 / 0
Регистрация: 30.09.2012
Сообщений: 49
02.02.2013, 17:33     Вычислить время. Функция time #5
ну, при таком изменении показывает правильное время
NoMasters
Псевдослучайный
1744 / 1087 / 71
Регистрация: 13.09.2011
Сообщений: 3,111
02.02.2013, 18:24     Вычислить время. Функция time #6
Цитата Сообщение от bgm123 Посмотреть сообщение
//вывод всегда на 4 часа меньше. ПОЧЕМУ????
UTC+4, не иначе. Системное время обычно считается по Гринвичу.
Yandex
Объявления
02.02.2013, 18:24     Вычислить время. Функция time
Ответ Создать тему
Опции темы

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