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

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

Восстановить пароль Регистрация
 
bgm123
39 / 39 / 16
Регистрация: 29.01.2013
Сообщений: 277
02.02.2013, 17:03     Вычислить время. Функция time #1
Всем привет. С помощью функции 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  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
 Аватар для 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
 Аватар для varostislav
3 / 3 / 0
Регистрация: 30.09.2012
Сообщений: 49
02.02.2013, 17:33     Вычислить время. Функция time #5
ну, при таком изменении показывает правильное время
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,093
02.02.2013, 18:24     Вычислить время. Функция time #6
Цитата Сообщение от bgm123 Посмотреть сообщение
//вывод всегда на 4 часа меньше. ПОЧЕМУ????
UTC+4, не иначе. Системное время обычно считается по Гринвичу.
Yandex
Объявления
02.02.2013, 18:24     Вычислить время. Функция time
Ответ Создать тему
Опции темы

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