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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 43, средняя оценка - 4.98
SanOs
Сообщений: n/a
#1

Как преобразовать время в строку и обратно - C++

18.10.2007, 14:58. Просмотров 5248. Ответов 3
Метки нет (Все метки)

Помогите с алгоритмом: SYSTEMTIME(или FileTime) в строку с учетом региональных установок, а потом на основе данной строки обратно получить SYSTEMTIME(или FileTime).

Нормальных классов и стандартных функций я не нашел.
Были под 16-разрядные функции: char *ctime( const time_t *timer );char *asctime( const struct tm *timeptr ); без обратного преобразования и с простой интерпретацией (без учета региональных установок) а в 32-разрядных - мелкософту слабо ???
Самое сложное разбор строки обратно в FileTime.
Есть ли идеи, советы, алгоритмы, ссылки и т.д и т.п.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2007, 14:58     Как преобразовать время в строку и обратно
Посмотрите здесь:

C++ Как строку можно преобразовать в число???
C++ Как преобразовать число в строку
C++ Как преобразовать string в double и обратно?
C++ Как правильно преобразовать строку символов в строку типа CComBSTR?
Как преобразовать время в long ? C++
C++ Как преобразовать строку цифр в число?
Подскажите, как преобразовать строку с IP адресом в число и обратно C++
C++ Преобразовать кодировку utf-8 в cp1251 и обратно
C++ Преобразовать utf-8 в cp1251 и обратно
Как перевести строку в hex и обратно? C++
Как преобразовать время из строки в Unix Time? C++
Как преобразовать строку string в int? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Excalibur
0 / 0 / 0
Регистрация: 18.10.2007
Сообщений: 4
18.10.2007, 22:20     Как преобразовать время в строку и обратно #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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/////две структуры SYSTEMTIME
    SYSTEMTIME StrSysT;
    SYSTEMTIME StrSysTF;
////////////////далее нам понадобится клас и обьекты CTime
             CTime timelocal;
             CTime timefile;
/////////////далее если нам нужно будет перевратить обект CTime в стороку нам нужно будет иметь CString
             CString msgTL;
             CString msgTF;
///////например мы хотим посласть в файл или в обычный MessageBox текущее время выполним
             timelocal = CTime::GetCurrentTime();
             msgTL = timelocal.Format("%c");
             MessageBox(msgTL);
///////////если нужно заполнить структуру текущим временем
             timelocal = CTime::GetCurrentTime();
             timelocal.GetAsSystemTime(StrSysT);
/////////////для того что бы потом получить тип int со структуры
             StrSysT.wYear 
             StrSysT.wMonth 
             StrSysT.wDay 
             StrSysT.wHour 
             StrSysT.wMinute /////всё віше перечисленое это типы int
/////////////////допустем теперь мы считали с файла или ещё откуда типы инт относительно времени и теперь на их основе хотим построить обьект CTime
             /////////есть для этого разные конструкторы.. пример. (будем щитать что бы щитали с файла в StrSysTF 
             StrSysTF.wYear = 2007
             StrSysTF.wMonth = 10
             StrSysTF.wDay = 18
             StrSysTF.wHour = 12
             StrSysTF.wMinute = 56
             StrSysTF.wSec = 14
///тогда создадим и заполним обьект класса CTime
          timefile = CTime(StrSysTF);
или например можно так заполнить и создать обьект без структуры
          timefile = CTime(2007,10,18,12,56,14,-1);
 
////вот теперь можно работать с обектом timefile и timelocal например так
           if (timelocal < timefile)
             MessageBox("Меньше");
           else
             MessageBox("Больше");
надеюсь более менее нормально обьяснил .. и надеюсь именно то что тебе нужно.
Гость
Сообщений: n/a
19.10.2007, 15:26     Как преобразовать время в строку и обратно #3
CTime не позволяет получить в строку с учетом региональных установок (к примеру если настраиваеш регион Африка у них "2007/10/19 02:18:29 nm" , а у нас "14:18:29 19.10.2007" показывает одно и то же время), ну и когда пользователь(африканос) введет время(строку) в своем формате то программа должна перевести его снова в SYSTEMTIME
Гость
Сообщений: n/a
19.10.2007, 18:39     Как преобразовать время в строку и обратно #4
тю блин дак зделй разделитель, пусть вводит именно так как нужно тебе ...
ну а если ты уже прямо так хочеш, что бы учитывало стандарт то напиши алгоритм с перебором всех вариантов... если учесть что год это однозначно 4 зачное число (т.к. иначе ты его если и присвоиш структуре systemtime то на его основе не создаш обьекта ctime) скакать скакать будет проще... у америкосов например принято писать сначала месяц потом день и только потом год, ну и соотвественно часы не 24 часовом формате, а в 12 и указывать до или после полудня ... ну вот от этого и пляшы... если встречастья а.m. или p.m. то значит откидываеться расклад с 24 часовым временем. ну и т.д.
Yandex
Объявления
19.10.2007, 18:39     Как преобразовать время в строку и обратно
Ответ Создать тему
Опции темы

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