Date
Resultado = Date (Expressão) AS Date
Retorna a Expressão como um valor de Data e Hora.
O Gambas trata o tempo de uma maneira diferente a que estamos acostumados. Para
manipular o tempo utiliza o comando Date. As particularidades deste comando está exposto
nos parágrafos seguintes.
Quando utilizamos inteiros separados por vírgula para retornar uma Data o formato correto
para entrada é (Ano, Mês, Dia). A data retornada é no formato local, por exemplo, no Brasil a
data retornada é (Dia - Mês - Ano Hora : Minuto : Segundo)
Data = Date(Ano, Mes, Dia, Horas, Minutos, Segundos) AS Date
01 Public Sub Main()
02
Print Date(2013, 4, 25) '25-04-2013 00:00:00
03 End
Quando a entrada da Data é do tipo String a data deve ser escrita no formato americano (Mês,
Dia, Ano). O retorno é no formato local.
01 Public Sub Main()
02
Print Date("04/25/2013") '25-04-2013 00:00:00
03 End
A data no terminal é retornada no formato das configurações regionais. No entanto se usarmos
um objeto, por exemplo um TextBox ou um Label, a data é retornada no formato americano
(Mês, Dia, Ano).
01 Public Sub Main()
02
Print Date(2013, 4, 25) '25-04-2013 00:00:00
03
Print Date("04/25/2013")'25-04-2013 00:00:00
04 End
3
DateAdd
Resultado = DateAdd(Data as Date, Período AS Integer, Quantidade AS
Integer)AS Date
DateAdd, Adiciona de forma simples e prático um período específico a uma determinada data.
• Data é a data inicial; a qual vamos adicionar um período.
• Período é o tipo de período: ano, mês, dia, semana…
• Quantidade é o número de períodos a adicionar.
Como exemplo, vamos imaginar que matriculamos um aluno e desejamos saber a data do
próximo vencimento da mensalidade. Utilizamos a sintaxe DataAdd.
Observe que no exemplo a seguir utilizamos duas formas distintas para inserir a data, uma
String e o retorno da função Date. Como podemos ver o resultado é o mesmo para as duas
formas de entrada dos dados.
01 Public Sub Main()
02
Print DateAdd("04/25/2013", gb.Month, 1)
03
Print DateAdd(Date(2013, 4, 25), gb.Month, 1)
04 End
Determinamos a data de matricula (04/25/2013) o período gb.Month (Mês) e por fim a
quantidade de períodos (1). se fosse trimestral colocaríamos a quantidade (3) ou gb.Quarter
(quarto de ano) e seria somado 3 meses.
01 Public Sub Main()
02
Print DateAdd("04/25/2013", gb.Month, 1)
03
Print DateAdd("04/25/2013", gb.Month, 3)
04
Print DateAdd("04/25/2013", gb.Quarter, 1)
05 End
A tabela a seguir mostra as constantes que podemos utilizar como período. Observe os
valores inteiros que representa cada uma delas.
Constantes gb
Constante
Efeito
Inteiro
gb.Second
Segundos.
2
gb.Minute
Minutos.
3
gb.Hour
Horas.
4
gb.Day
Dias.
5
gb.Week
Semanas.
6
gb.WeekDay
Dias da semana (ignora Sábado e Domingo).
7
gb.Month
Meses.
8
gb.Quarter
Quartos de ano (trimestres).
9
gb.Year
Anos.
10
Cada constante gb tem um número inteiro que a representa, no lugar de escrever gb. Month por
4
exemplo, podemos colocar o número (8), o resultado é o mesmo.
01 Public Sub Main()
02
Print DateAdd("04/25/2013", 8, 1)
03 End
DateDif
Resultado = DateDiff(Data1 AS Date, Data2 AS Date, Período AS Integer) AS
Integer
Retorna o número de períodos entre duas datas.
• Data1 é a data maior.
• Data2 é a data menor.
• Período é o tipo de período: ano, mês, dia, semana…
Enquanto que a função DateAdd adiciona períodos a uma determinada data, DateDiff retorna
a quantidade de períodos entre duas datas.
Com esta função podemos facilmente descobrir por exemplo, quantos anos uma pessoa tem
ou até os meses, dias e etc. Somente períodos inteiros são retornados e resultado é
arredondado.
01 Public Sub Main()
02
Print DateDiff("04/25/2013", "04/25/2014", gb.Month )
03 End
As constantes que podemos utilizar como período são as mesmas utilizadas em DateAdd.
01 Public Sub Main()
02
Print DateDiff("04/25/2013", "04/25/2014", gb.Day)
03
Print DateDiff("04/25/2013", "04/25/2014", gb.Week)
04
Print DateDiff("04/25/2013", "04/25/2014", gb.Quarter)
05
Print DateDiff("04/25/2013", "04/25/2014", gb.Year)
06 End
Se por acaso quisermos descobrir quantos anos e quantos meses uma pessoa tem, podemos
usar a constante gb.Month e dividimos o resulta obtido por 12.
Para obter a quantidade de anos utilizamos o operando Div que devolve apenas a parte inteira
da operação arredondando para baixo. Para obter os meses, utilizamos o operando Mod, que
devolve apenas o resto do quociente da operação arredondando para cima.
01 Public Sub Main()
02 Dim Idade AS Integer
03
Idade = DateDiff("04/25/2013", "10/25/2014", gb.Month )
04
Print Idade Div 12 'Anos = 1
05
Print Idade Mod 12 'Meses = 8
06 End
5
Download

Retorna a Expressão como um valor de Data e Hora. O