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

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

Войти
Регистрация
Восстановить пароль
 
Жэужык
0 / 0 / 0
Регистрация: 13.02.2013
Сообщений: 17
#1

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

04.10.2013, 11:19. Просмотров 887. Ответов 3
Метки нет (Все метки)

Задача отловить изменение системного времени
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++ Осуществить перевод времени из минут в секунды
C++ Разветвляющиеся алгоритмы: перевод времени из минут в часы и минуты
Запись системного времени в файл C++
Вывод системного времени C++
C++ От системного времени отнять введённое
C++ Перевод времени - секунды с 1970 в наше время
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
147 / 68 / 1
Регистрация: 04.09.2013
Сообщений: 254
04.10.2013, 14:02     Перевод системного времени #4
У этого подхода есть один существенный недостаток
Функция Sleep(N) не гарантирует, что программе (или потоку) вернется управление именно через N мсек.
Функция слип говорит, что на н милисекунд нам точно ничего не нужно. И позволяет выделенное программе время отдать другому потоку или программе, но.... когда нам вернется управление знает только ОС.
Поэтому если компьютер просто "затупил" алгоритм выдаст ошибку.
Для снижения ложных срабатываний. Проверяйте что разница между значениями по модулю не меньше 60 минут. Т.к. именно на 1 час происходит переход времени

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

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