Tratando Incremento e Decremento de Campos Data/Hora
Fala galera, beleza?
Para efetuarmos o incremento ou decremento em valores de Data/Hora, utilizaremos algumas propriedades que explicaremos um pouco melhor abaixo, as funções são encontradas na Unit DateUtils, que será necessário ser declarada para que o Delphi encontre as funções.
- IncMillisecond – Incrementa/Decrementa Milisegundos
- IncSecond – Incrementa/Decrementa Segundos
- IncMinute – Incrementa/Decrementa Minutos
- IncDay – Incrementa/Decrementa Dias
- IncMonth – Incrementa/Decrementa Meses
- IncYear – Incrementa/Decrementa Anos
Não existe as funções DecMillisecond, DecSecond, DecMinute, DecDay, DecMonth, DecYear. Para esses casos, utilizaremos as respectivas funções passando como parâmetro um valor negativo.
- Incrementos de Milisegundos (IncMillisecond)
var minhaData : TDateTime; begin // Configure nossa data para o início de 2020 minhaData := EncodeDateTime(2020, 1, 1, 0, 0, 0, 0); ShowMessage('Data = '+DateTimeToStr(minhaData)); // Adicionar 5000 milisegundos na data/hora minhaData := IncMillisecond(minhaData, 5000); ShowMessage('Data + 5000 milisegundos = ' + DateTimeToStr(minhaData)); // Subtrair 1000 milisegundos na data/hora minhaData := IncMillisecond(minhaData, -1000); ShowMessage('Data - 1000 milisegundos = '+ DateTimeToStr(minhaData)); end;
Teremos como resultado das funções acima 3 mensagens, sendo:
A 1º mensagem: ‘Data = 01/01/2020’
A 2º mensagem: ‘Data + 5000 milisegundos = 01/01/2020 00:00:05’
A 3º mensagem: ‘Data – 1000 milisegundos = 01/01/2020 00:00:04’
- Incremento de Segundos (IncSecond)
var minhaData : TDateTime; begin // Configure nossa data para o fim de 2020 minhaData := EncodeDateTime(2005, 12, 31, 23, 59, 0, 0); ShowMessage('Data = '+ DateTimeToStr(minhaData)); // Adicionar 60 segundos na data/hora myDate := IncSecond(myDate, 60); ShowMessage('Data + 60 segundos = '+DateTimeToStr(minhaData)); // Subtrair 120 segundos na data/hora minhaData := IncSecond(minhaData, -120); ShowMessage('Data - 120 segundos = '+DateTimeToStr(minhaData)); end;
Teremos como resultado das funções acima 3 mensagens, sendo:
A 1º mensagem: ‘Data = 31/12/2020 23:59:00’
A 2º mensagem: ‘Data + 60 segundos = 01/01/2021’
A 3º mensagem: ‘Data – 120 segundos = 31/12/2020 23:58:00’
- Incremento de Minutos(IncMinute)
var minhaData : TDateTime; begin // Defina nossa data antes do final do ano 2020 minhaData := EncodeDateTime(2020, 12, 31, 23, 0, 0, 0); ShowMessage('Data = '+DateTimeToStr(minhaData)); // Adicionar 100 minutos na data minhaData := IncMinute(minhaData, 100); ShowMessage('Data + 100 minutos = '+DateTimeToStr(minhaData)); // Subtrair 40 minutes na data minhaData := IncMinute(minhaData, -40); ShowMessage('Data - 40 minutos = '+DateTimeToStr(minhaData)); end;
Teremos como resultado das funções acima 3 mensagens, sendo:
A 1º mensagem: ‘Data = 31/12/2020 23:00:00’
A 2º mensagem: ‘Data + 100 minutos = 01/01/2021 00:40:00’
A 3º mensagem: ‘Data – 40 minutos = 01/01/2021’
- Incremento de Dias(IncDay)
var MinhaData : TDateTime; begin // Defina nossa data antes do final do ano 2020 MinhaData := EncodeDate(2020, 12, 30); ShowMessage('Data = '+DateToStr(MinhaData)); // Adicinar 10 dias na data MinhaData := incDay(MinhaData, 10); ShowMessage('Data + 10 Dias = '+DateToStr(MinhaData)); // Subtrair 12 dias na data MinhaData := incDay(MinhaData, -12); ShowMessage('Data - 12 Dias = '+DateToStr(MinhaData)); end;
Teremos como resultado das funções acima 3 mensagens, sendo:
A 1º mensagem: ‘Data = 30/12/2020’
A 2º mensagem: ‘Data + 10 dias = 09/01/2021’
A 3º mensagem: ‘Data – 12 dias = 29/12/2020’
- Incremento de Meses(IncMonth)
var minhaData : TDateTime; begin minhaData := StrToDate('31/01/2000'); //Fim de Janeiro em ano bissexto ShowMessage('Data = ' + DateToStr(minhaData)); // Incrementar em 1 (padrão) // 31/Janeiro/2000 ==> 31/Fevereiro/2000 (ilegal) ==> 29/Fevereiro/2000 minhaData := IncMonth(minhaData); ShowMessage('Data + 1 mês = ' + DateToStr(minhaData)); // Incrementar em 12 meses // 29/Fevereiro/2000 ==> 29/Fevereiro/2000 (ilegal) ==> 28/Fevereiro/2001 minhaData := IncMonth(minhaData, 12); // Incrementar em 12 meses ShowMessage('Data + 12 meses = ' + DateToStr(minhaData)); end;
Teremos como resultado das funções acima 3 mensagens, sendo:
A 1º mensagem: ‘Data = 31/01/2000’
A 2º mensagem: ‘Data + 1 mês = 29/02/2000’
A 3º mensagem: ‘Data + 12 meses = 28/02/2001’
- Incremento de Ano(IncYear)
var minhaData : TDateTime; begin // Configure nossa data para um dia especial de ano bissexto minhaData := EncodeDate(2000, 02, 29); ShowMessage('Data = '+DateToStr(minhaData)); // Adicionar 2 anos na data minhaData := IncYear(minhaData, 2); ShowMessage('Data + 2 Anos = '+DateToStr(minhaData)); // Subtrair 2 anos na data minhaData := IncYear(minhaData, -2); ShowMessage('Data - 2 Anos = '+DateToStr(minhaData)); end;
Teremos como resultado das funções acima 3 mensagens, sendo:
A 1º mensagem: ‘Data = 29/02/2000’
A 2º mensagem: ‘Data + 2 Anos = 28/02/2002’
A 3º mensagem: ‘Data – 2 Anos = 28/02/2000’
Publicado em 27 de janeiro de 2021, em Delphi, Funções, TEdit e marcado como data, Delphi, Desenvolvedor Delphi, Desenvolvimento, função, Funções, hora, Programa, Programação, TDateTime. Adicione o link aos favoritos. Deixe um comentário.
Deixe um comentário
Comentários 1