строка "DD/MM/YYYY" в time_t
От: tanex  
Дата: 16.04.04 15:44
Оценка:
Есть ли стандартная функция преобразующая строку типа "DD/MM/YYYY" в переменную типа time_t
????
Re: строка "DD/MM/YYYY" в time_t
От: SchweinDeBurg Россия https://zarezky.spb.ru/
Дата: 17.04.04 07:28
Оценка:
Здравствуйте, tanex, Вы писали:

T>Есть ли стандартная функция преобразующая строку типа "DD/MM/YYYY" в переменную типа time_t

T>????

COleDateTime::ParseDateTime() не подойдет? А там и в time_t можно преобразовать...
<< RSDN@Home 1.1.2 stable >>
- Искренне ваш, Поросенок Пафнутий
Re: строка "DD/MM/YYYY" в time_t
От: Mr. None Россия http://mrnone.blogspot.com
Дата: 19.04.04 06:33
Оценка:
Здравствуйте, tanex, Вы писали:

T>Есть ли стандартная функция преобразующая строку типа "DD/MM/YYYY" в переменную типа time_t

T>????

Вот так можно SYSTEMTIME преобразовать в time_t, ну а получить SYSTEMTIME из "DD/MM/YYYY" уже несколько проще :
SystemTimeToTimet(LPSYSTEMTIME psd, time_t *t)
{
    struct tm tm_str;
    // Вот тут можно попробовать получить реальное значение флага перехода на зимнее время,
    // мне почему-то оно не понадобилось. Похоже в сочетании с функцией обратного преобразования
    // проканывало и так, но поскольку времени разбираться не было - дед-лайн висел, то ответа толком
    // не знаю до сих пор :-)
    tm_str.tm_isdst = -1;
    if(psd->wYear >= 1970)
    {
        tm_str.tm_year = psd->wYear - 1900;
        tm_str.tm_mon = (psd->wMonth) -1;
        tm_str.tm_mday = psd->wDay;
        tm_str.tm_wday = psd->wDayOfWeek;
    }
    else
    {
        tm_str.tm_year = 70;
        tm_str.tm_mon = 0;
        tm_str.tm_mday = 2;
        tm_str.tm_wday = 0;
    }
    tm_str.tm_hour = psd->wHour;
    tm_str.tm_min = psd->wMinute;
    tm_str.tm_sec = psd->wSecond;
    tm_str.tm_yday = 0;

    time_t lt = mktime(&tm_str);
    if(lt==-1) *t = 0;
    else *t = lt;
}


И до кучи — функция обратного преобразования.
TimetToSystemTime(time_t t, LPSYSTEMTIME psd)
{
    struct tm *tmp_str = localtime(&t);
    // См. комментарий выше
    tmp_str->tm_isdst = 0;
    psd->wYear = tmp_str->tm_year +1900;
    psd->wMonth = tmp_str->tm_mon + 1;
    psd->wDay = tmp_str->tm_mday;
    psd->wDayOfWeek = tmp_str->tm_wday;
    psd->wHour = tmp_str->tm_hour;
    psd->wMinute = tmp_str->tm_min;
    psd->wSecond = tmp_str->tm_sec;
    psd->wMilliseconds = 0;
}
Компьютер сделает всё, что вы ему скажете, но это может сильно отличаться от того, что вы имели в виду.
Re: строка "DD/MM/YYYY" в time_t
От: Аноним  
Дата: 26.12.07 15:17
Оценка:
Здравствуйте, tanex, Вы писали:

T>Есть ли стандартная функция преобразующая строку типа "DD/MM/YYYY" в переменную типа time_t

T>????
В линуксе есть функция strptime. К сожалению, или к счастью в винде такой нет.
Re: строка "DD/MM/YYYY" в time_t
От: zaufi Земля  
Дата: 27.12.07 10:14
Оценка:
Здравствуйте, tanex, Вы писали:

T>Есть ли стандартная функция преобразующая строку типа "DD/MM/YYYY" в переменную типа time_t

T>????

ну и на закуску boost::date_time есь такая библа
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.