LINUX.ORG.RU

time


0

0

а не подскажите ф-цию для перевода из обычного представления(строкого) к примеру 13:32:21 в timeshtamp ? Из timeshtamp'а в строку : ctime(&tm) ... а вот наоборот как?

anonymous

#include <iostream> #include <time.h> static long convert ( const char *t ); int main () { time_t tm; time ( &tm ); string curr = ctime ( &tm ); string rez = curr.substr ( curr.find_first_of ( ':' ) - 2, 8 ); string time_old = "13:24:43"; tm = tm + convert ( time_old.c_str() ) - convert ( rez.c_str() ); std::cout << ctime ( &tm ); return 0; }

long convert ( const char *t ) { long h = ( t[0] - '0' ) * 10 + ( t[1] - '0' ); long m = ( t[3] - '0' ) * 10 + ( t[4] - '0' ); long s = ( t[6] - '0' ) * 10 + ( t[7] - '0' ); return ( h * 60 + m ) * 60 + s; } Для учета года, дня и месяца аналогично.

fura13 ★★★
()

#iclude <iostream>
#include <time.h>
static long convert ( const char *t )
int main ()
{
    time_t tm;
    time ( &tm );
    string curr = ctime ( &tm );
    string rez = curr.substr ( curr.find_first_of ( ':' ) - 2, 8 );
    string time_log = "13:24:43";
    tm = tm + convert ( time_log.c_str() ) - convert ( rez.c_str() );
    std::cout << ctime ( &tm );
    return 0;
}

long convert ( const char *t )
{
    long h = ( t[0] - '0' ) * 10 + ( t[1] - '0' );
    long m = ( t[3] - '0' ) * 10 + ( t[4] - '0' );
    long s = ( t[6] - '0' ) * 10 + ( t[7] - '0' );
    return ( h * 60 + m ) * 60 + s;
}
Sory

fura13 ★★★
()
Ответ на: комментарий от anonymous

Результат, правда, в tm отдается. Далее mktime.

Только не понятно, как ты собрался без даты timestamp получать.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.