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

Human Time to Unix Timestamp - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Error LNK1120: неразрешенных внешних элементов: 2 http://www.cyberforum.ru/cpp-beginners/thread1540353.html
Доброго времени суток. Не могу понять в чем ошибка. Подскажите, пожалуйста. Задание: Программно реализовать следующие методы сортировки данных в оперативной памяти: сортировка прямыми включения-ми;...
C++ Односвязный список с данными о студентах Составить односвязный список на основе класса,объекты которого будут формтировать этот списо. В описание класса должны входить данные для хранения фамилии студента,номера группы,оценок по трём... http://www.cyberforum.ru/cpp-beginners/thread1540321.html
C++ Функции для ввода/вывода массивов и матриц с помощью шаблонов и перегрузки
#include <iostream> #include <conio.h> using namespace std; template<class T> int mass(T mas, T iSize = sizeof(mas) / sizeof(int)); int mass(mas, iSize = sizeof(mas) / sizeof(int)); ...
C++ Класс "Окружность", три объекта изображающих движение
разработав класс окружность, создать три объекта изображающих движение: а)расширяющейся (сужающейся) окружности с неподвижным центром б)окружность постоянного радиуса, скользящий вдоль прямой...
C++ Rand() генерирует одни и те же числа http://www.cyberforum.ru/cpp-beginners/thread1540278.html
0100010010101010100011111101010101000010 щучу :p Всем привет, не найдя на форуме ответа, решил сделать тему, удалю как получу ответ ]:-> Есть rand() для генерации случайного числа. Но проблема...
C++ Внутреннее устройство потоков Очень тупой вопрос - почему std::ios хранит в своих потрохах указатель на объект std::streambuf, а не является потомком std::streambuf? Принимая во внимание что std::streambuf все равно собран на... подробнее

Показать сообщение отдельно
pav1uxa
1806 / 1649 / 630
Регистрация: 23.01.2014
Сообщений: 5,958
Завершенные тесты: 1

Human Time to Unix Timestamp - C++

29.09.2015, 11:23. Просмотров 706. Ответов 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
/* Перевод времени из формата %d.%m.%y %H:%M:%S (UTC)
 * в метку времени Unix Timestamp
 */
std::string dateStr2str(std::string input)
{
    /* Ввожу 25.09.15 08:40:00
     * На выхоже ожидаю 1443170400
     * Вместо этого получаю разницу в -4 или -7 часов
     */
 
    std::string result = "";
    int day, month, year, hour, minute, second;
 
    sscanf(input.c_str(), "%d.%d.%d %d:%d:%d", &day, &month, &year, &hour, &minute, &second);
 
    std::tm dt;
    dt.tm_mday = day;
    dt.tm_mon = month - 1;
    dt.tm_year = year + 2000 - 1900;
    dt.tm_hour = hour;
    dt.tm_min = minute;
    dt.tm_sec = second;
    std::time_t t = std::mktime(&dt);
    // вывожу разницу в часах после mktime
    // результат 1443156000 -4
    std::cout << t << " " << (t - 1443170400) / 60 / 60 << std::endl;
    dt = *std::gmtime(&t);
    t = std::mktime(&dt);
    // вывожу разницу в часах после gmtime
    // результат 144314200 -7
    std::cout << t << " " << (t - 1443170400) / 60 / 60 << std::endl;
 
    result = std::to_string(t);
    return result;
}
Я, конечно, могу вручную добавлять 4 часа, но думаю это не совсем правильно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru