Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Claudio Neto

Trabalhando com Datas

Recommended Posts

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á.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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!

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.