Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для R1987
13 / 13 / 7
Регистрация: 09.12.2012
Сообщений: 63

Не правильно работает код для парсинга строки с датой

05.11.2013, 19:28. Показов 769. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Делаю парсинг строки с датой. Все работает, но работает не правильно. Не сходятся начальная и конечная дата.
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
#include <iostream>
#include <time.h>
 
using namespace std;
 
 
int main() {
        
    char pszAttBuf[20];
    strcpy_s(pszAttBuf, "30.01.2013 23:00:01"); //"31.12.2012 23:00:01"
 
    cout << pszAttBuf << endl;
 
    tm tm_d_reg = {0};
    sscanf_s(pszAttBuf, "%d.%d.%d %d:%d:%d",    &tm_d_reg.tm_mday, &tm_d_reg.tm_mon, &tm_d_reg.tm_year, 
                                            &tm_d_reg.tm_hour, &tm_d_reg.tm_min, &tm_d_reg.tm_sec);
 
    tm_d_reg.tm_mon -= 1;
    tm_d_reg.tm_year -= 1900;
    tm_d_reg.tm_isdst = 1;
    time_t tstamp_d_reg = mktime(&tm_d_reg);
 
    tm tm_dt_reg2 = {0};
    
    localtime_s(&tm_dt_reg2, &tstamp_d_reg);
    strftime(pszAttBuf, 20, "%d.%m.%Y %H:%M:%S", &tm_dt_reg2);
 
    cout << pszAttBuf << endl; //"31.12.2012 22:00:01"
    
    
    return 0; 
}





Добавлено через 3 часа 15 минут
Вроде бы разобрался. Нужно было перед тем как записывать в структуру tm значения даты со строки записать туда текущее время:
C++
1
2
3
    time_t tstamp_reg = time(NULL);
    tm tm_reg = {0};
    localtime_s(&tm_reg, &tstamp_reg);
а потом уже:
C++
1
2
3
4
5
6
7
sscanf_s(pszAttBuf, "%d.%d.%d %d:%d:%d",    &tm_reg.tm_mday, &tm_reg.tm_mon, &tm_reg.tm_year, 
                                            &tm_reg.tm_hour, &tm_reg.tm_min, &tm_reg.tm_sec);
    tm_reg.tm_mon -= 1;
    tm_reg.tm_year -= 1900;
 
    //новое значение timestamp
    tstamp_reg = mktime(&tm_reg);
весь код здесь:
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
#include <iostream>
#include <time.h>
 
using namespace std;
 
 
int main() {
        
    char pszAttBuf[20];
    strcpy_s(pszAttBuf, "31.12.2012 23:00:01"); //"31.12.2012 23:00:01"
 
    cout << pszAttBuf << endl;
 
    time_t tstamp_reg = time(NULL);
    tm tm_reg = {0};
    localtime_s(&tm_reg, &tstamp_reg);
 
    sscanf_s(pszAttBuf, "%d.%d.%d %d:%d:%d",    &tm_reg.tm_mday, &tm_reg.tm_mon, &tm_reg.tm_year, 
                                            &tm_reg.tm_hour, &tm_reg.tm_min, &tm_reg.tm_sec);
    tm_reg.tm_mon -= 1;
    tm_reg.tm_year -= 1900;
 
    //новое значение timestamp
    tstamp_reg = mktime(&tm_reg);
 
    //проверочка
    tm tm_reg2 = {0};
    localtime_s(&tm_reg2, &tstamp_reg);
    strftime(pszAttBuf, 20, "%d.%m.%Y %H:%M:%S", &tm_reg2);
 
    cout << pszAttBuf << endl; //"31.12.2012 23:00:01"
    
    
    return 0; 
}
Может кто знает почему так?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.11.2013, 19:28
Ответы с готовыми решениями:

Не правильно работает код для рекламы
Всем привет! Есть код, который показывает кнопку только после клика по баннеру. НО... Есть и недостаток, т.к кнопка появляется и тогда,...

Как сравнить правильно в MySQL запросе поле с датой с текущей датой?
Всем привет! Как сравнить правильно в mysql запросе поле с датой с текущей датой? Мне просто нужно, чтобы скрипт перезаписывал значение...

Исправить код для парсинга страницы
В общем сори если тема уже есть, просто, появился у меня вопрос. Подскажите почему не работает. Тупо не определяет имя news, пробовал...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.11.2013, 19:28
Помогаю со студенческими работами здесь

Исправить код для парсинга сайта
Здравствуйте! Извините, если я не в той ветке пишу. Не могу разобраться с библиотекой Beautiful Soup. Хочу спарсить сайт...

Поправьте код для парсинга HTML-страницы
&lt;tr class=&quot;itr&quot;&gt; &lt;td class=&quot;itdh&quot; align=&quot;center&quot;&gt;4&lt;/td&gt; &lt;td class=&quot;itd_lb&quot; width=&quot;33%&quot; nowrap align=&quot;left&quot;&gt; &lt;a...

Дописать код для парсинга документов с сайта
День добрый и всех с праздником! Есть готовый код (сложный) на 1500 строк на PowerShell (одна из последних версий) на win10. Создатель...

Регулярное выражения для парсинга строки
Есть строка 18 (из 50) Помогите пожалуйста написать регулярное выражение/выражения для того чтобы получить отдельно число 18 и число 50

Калькулятор - регулярка для парсинга строки
Всем привет. Пишу строковый калькулятор. Вводится строка вида 31+4*2/(1-5)^2 и калькулятор должен выдать результат. Хочу сделать перевод...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru