Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Tenho uma aplicação que grava conversas telefônicas e as salva em .wav. Nomeio os arquivos de áudio baseado no id da tabela mais a data, ficando por exemplo assim:
000234_2012_09_12.wav
Estou tendo problemas com as ligações que ocorrem depois das 21 horas, pois para pegar a data utilizei <time.h>, e por padrão é pego a data e horário do Meridiano de Greenwich. Poderia ajustar a data com uma comparação, e caso a hora fosse maior que 21 seria só colocar um dia a menos, porém temos o horário de verão, o que faria isso dar errado.
Alguém sabe dizer se existe uma forma de se basear no horário local, e não no meridiano?
Abaixo código:
time_t rawtime;
tm * ptm;
time ( &rawtime );
ptm = gmtime ( &rawtime );
//monta o nome do arquivo de audio
sprintf (Audio,"records\\%000006d_%4d_%02d_%02d.wav", idxCampanha, (ptm->tm_year)+1900, (ptm->tm_mon)+1, ptm->tm_mday);
Obrigado desde já.
Show cara.
E usando a localtime também não preciso mais fazer (ptm->tm_year)+1900 né? Posso usar o ptm->tm_year direto né?
Valeu
Rs, já descobri que não, mesmo usando a localtime preciso manter o '+1900'...
Valeu pela ajuda.
Abraço
Utilize a função localtime ao invés de gmtime.
Link com explicação da função localtime:
http://www.cplusplus.com/reference/clibrary/ctime/localtime/
Espero ter ajudado, FLW!