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

Перевод системного времени - C++

Восстановить пароль Регистрация
 
Жэужык
0 / 0 / 0
Регистрация: 13.02.2013
Сообщений: 17
04.10.2013, 11:19     Перевод системного времени #1
Задача отловить изменение системного времени
C++
1
2
3
4
5
time1=time(NULL);
Sleep(delay);
time2=time(NULL);
if(time1!=time2-delay)
std::cout<<"Време перевели"<<;
Когда пользователь переводит сам время все работаетбно когда происходит перевод на сезонное время мы его не замечаем а его нужно также обрабатывать,как это реолизовать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2013, 11:19     Перевод системного времени
Посмотрите здесь:

Вывод системного времени на экран C++
Запись системного времени в файл. C++
C++ функция вывода системного времени
Перевод времени C++
C++ Осуществить перевод времени из минут в секунды
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Fyret
184 / 170 / 13
Регистрация: 30.07.2013
Сообщений: 359
04.10.2013, 11:32     Перевод системного времени #2
Используйте localtime для мониторинга местного, а не UTC времени. Хм... или комбинацию time и localtime.
Жэужык
0 / 0 / 0
Регистрация: 13.02.2013
Сообщений: 17
04.10.2013, 12:08  [ТС]     Перевод системного времени #3
Может подскажете что ни так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "stdafx.h"
#include <windows.h>
#include <time.h>
int _tmain(int argc, _TCHAR* argv[])
{ time_t curtime,curtime2; 
  struct tm *loctime;
  struct tm *loctime2;
  int time1,time2;
  curtime = time(NULL); 
  loctime = localtime(&curtime);
    Sleep(30000);
  curtime2 = time(NULL);
  time_t curtime3=curtime2-30000/1000;
  loctime2 = localtime(&curtime3);
  if(loctime==loctime2)
  {std::cout<<"ok"<<std::endl;}
  else
      {std::cout<<"No"<<std::endl;}
 
    return 0;
}
HedgehogLu
 Аватар для HedgehogLu
146 / 67 / 1
Регистрация: 04.09.2013
Сообщений: 250
04.10.2013, 14:02     Перевод системного времени #4
У этого подхода есть один существенный недостаток
Функция Sleep(N) не гарантирует, что программе (или потоку) вернется управление именно через N мсек.
Функция слип говорит, что на н милисекунд нам точно ничего не нужно. И позволяет выделенное программе время отдать другому потоку или программе, но.... когда нам вернется управление знает только ОС.
Поэтому если компьютер просто "затупил" алгоритм выдаст ошибку.
Для снижения ложных срабатываний. Проверяйте что разница между значениями по модулю не меньше 60 минут. Т.к. именно на 1 час происходит переход времени

Добавлено через 3 минуты
ну и не хватает в программе подключения
C++
1
#include <iostream.h>
Yandex
Объявления
04.10.2013, 14:02     Перевод системного времени
Ответ Создать тему
Опции темы

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