Funções para tratamento de Data e Hora.
A seguir apresentarei através de exemplos, as principais funções para tratamento de Data e Hora.
Função Date
Retorna a data corrente do sistema. Não precisamos passar parâmetros para esta função. Considere o exemplo abaixo:
MsgBox “Data do Sistema: “ & Date()
O resultado deste comando, está indicado na Figura a seguir:
Função Time:
Retorna a hora corrente do sistema. Não precisamos passar parâmetros para esta função. Considere o exemplo abaixo:
MsgBox “Hora do Sistema: “ & Time( )
O resultado deste comando, está indicado na Figura a seguir:
Função Day:
Recebe como parâmetro uma data, e retorna um número entre 1 e 31, indicando o dia do mês. O formato geral é o seguinte:
Day(data)
Considere o exemplo abaixo:
MsgBox “Dia do mês: “ & Day(Date( ))
O resultado deste comando, está indicado na Figura a seguir:
A função Date( ) captura a data do sistema e passa como parâmetro para a função Day, a qual por sua vez, retorna apenas o dia do mês.
Função Month:
Recebe como parâmetro uma data, e retorna um número entre 1 e 12, indicando o mês do ano. O formato geral é o seguinte:
Month(data)
Considere o exemplo abaixo:
MsgBox “Mês do ano: “ & Month(Date( ))
O resultado deste comando, está indicado na Figura a seguir:
A função Date( ) captura a data do sistema e passa como parâmetro para a função Month, a qual por sua vez, retorna apenas o mês do ano
Função Now:
Retorna a hora e a data corrente do sistema. Não precisamos passar parâmetros para esta função. Considere o exemplo abaixo:
MsgBox “Data e Hora do Sistema: “ & Now( )
O resultado deste comando, está indicado na Figura a seguir:
Função MonthName:
Recebe como parâmetro um número, indicativo do mês do ano (1 – Janeiro, 2 – Fevereiro, e assim por diante), e um segundo parâmetro que pode ser Verdadeiro ou Falso. Se o segundo parâmetro for verdadeiro, o nome do mês será exibido abreviadamente. O formato geral é o seguinte:
MonthName(número_do_mês, abreviar)
Considere o exemplo abaixo:
MsgBox “Mês do ano: “ & MonthName(Month(Date(),False)
O resultado deste comando, está indicado na Figura a seguir:
A função Date() captura a data do sistema e passa como parâmetro para a função Month. A função Month retorna o número do mês retornado pela data. Este número é passado como primeiro parâmetro para a função MonthName. O segundo parâmetro é definido em Falso, o que significa que é para exibir o nome do mês por extenso, isto é, não abreviado.
Função Hour:
Recebe como parâmetro uma hora, e retorna um número entre 0 e 23, indicando o hora do dia. O formato geral é o seguinte:
Hour(horário)
Considere o exemplo abaixo:
MsgBox “Hora do dia: “ & Hour(Time( ))
O resultado deste comando, está indicado na Figura a seguir:
A função Time() captura a hora do sistema e passa como parâmetro para a função Hour(), a qual por sua vez, retorna apenas o hora do dia.
A função DateDiff:
Esta função pode ser utilizada para determinar o número de intervalos (em dias, trimestres, semestres, anos, etc), entre duas datas. A sintaxe desta função é o seguinte:
DateDiff(intervalo, data1, data2)
O parâmetro intervalo é uma String que diz que tipo de intervalo vamos calcular. Por exemplo, é este parâmetro que define se queremos calcular o número de dias, ou o número de meses entre duas datas. Na Tabela a seguir, temos os valores possíveis para o parâmetro intervalo.
Tabela - Valores para o parâmetro intervalo.
Valor | Descrição |
yyyy | Anos |
q | Trimestres |
m | Meses |
y | Dias do ano (o mesmo que dias) |
d | Dias |
w | Semanas |
ww | Semanas do ano (o mesmo que semanas) |
h | Horas |
n | Minutos |
s | Segundos |
A título de exemplo, vamos calcular o número de meses, desde o descobrimento do Brasil, até 31 de Dezembro de 1999. Para isso, utilizaríamos o seguinte comando
MsgBox “Meses desde o descobrimento: “ & DateDiff(“m”,”22/04/1500”,”31/12/1999”)
O resultado deste comando, pode ser conferido na Figura a seguir:
Vamos modificar um pouco o nosso exemplo, e calcular o número de horas desde o descobrimento. Para isto, podemos utilizar o seguinte comando:
MsgBox “Meses desde o descobrimento: “ & DateDiff(“h”,”22/04/1500”,”31/12/1999”)
O resultado deste comando, pode ser conferido na Figura a seguir:
A função DateAdd:
Esta função pode ser utilizada para determinar uma data futura, com base em uma data fornecida, o tipo de período a ser acrescentado (dias, meses, anos, etc), e o número de períodos a serem acrescentados. A sintaxe desta função é o seguinte:
DateAdd(intervalo, número_de_intervalos, data)
O parâmetro intervalo é uma String que diz que tipo de intervalo vamos acrescentar. Por exemplo, é este parâmetro que define se queremos acrescentar um número especificado de dias, meses, anos, etc. Na Tabela a seguir, temos os valores possíveis para o parâmetro intervalo.
Tabela - Valores para o parâmetro intervalo.
Valor | Descrição |
yyyy | Anos |
q | Trimestres |
m | Meses |
y | Dias do ano (o mesmo que dias) |
d | Dias |
w | Semanas |
ww | Semanas do ano (o mesmo que semanas) |
h | Horas |
n | Minutos |
s | Segundos |
A título de exemplo, vamos calcular a data em que tivemos um período de 1000 meses, após o descobrimento do Brasil. Para isso, utilizaríamos o seguinte comando:
MsgBox “Mil meses após o descobrimento foi em : “ & DateAdd(“m”,1000,”22/04/1500”)
O resultado deste comando, pode ser conferido na Figura a seguir:
Vamos modificar um pouco o nosso exemplo, e calcular em que data teremos passado um milhão de dias após o descobrimento.
MsgBox “Um milhão de dias após o descobrimento em : “ & DateAdd(“d”,1000000,”22/04/1500”)
O resultado deste comando, pode ser conferido na Figura a seguir:
Função Year:
Recebe como parâmetro uma data, e retorna um número indicativo do ano. O formato geral é o seguinte:
Year(data)
Considere o exemplo abaixo:
MsgBox “Ano atual: “ & Year(Date( ))
O resultado deste comando, está indicado na Figura a seguir:
A função Date() captura a data do sistema e passa como parâmetro para a função Year, a qual por sua vez, retorna apenas o ano.
Função WeekDay:
Recebe como parâmetros uma data, e um parâmetro opcional, que indica qual o primeiro dia da semana. Se este parâmetro for omitido, o primeiro dia da semana será considerado Domingo. O valor para o primeiro dia da semana é numérico: 1 – Domingo, 2 – Segunda-feira, e assim por diante.
WeekDay(data, prim_dia_semana)
Considere o exemplo abaixo:
MsgBox “Dia da semana: “ & WeekDay(“31/12/1999”)
O resultado deste comando, está indicado na Figura a seguir:
O valor 6, indica que foi uma Sexta-feira, o que confere com o calendário.
Poderíamos determinar que o primeiro dia da semana é a Segunda-feira (2 para o último parâmetro). Com isso o nosso exemplo, ficaria assim:
MsgBox “Dia da semana: “ & WeekDay(“31/12/1999”,2)
O resultado deste comando, está indicado na Figura a seguir:
O valor 5, indica que foi uma Sexta-feira, pois agora a Segunda-feira passou a ser o dia 1, a Terça-feira o dia 2, e assim por diante. Novamente confere com o calendário.
Função WeekDayName:
Recebe como parâmetro um número, indicativo do dia da semana, e um segundo parâmetro que pode ser Verdadeiro ou Falso. Se o segundo parâmetro for verdadeiro, o nome do dia da semana será exibido abreviadamente. O formato geral é o seguinte:
WeekDayName(número_do_dia, abreviar)
Considere o exemplo abaixo:
MsgBox “Dia da semana: “ & WeekDayName(6,False)
O resultado deste comando, está indicado na Figura a seguir:
Veremos as principais funções para efetuar cálculos matemáticos.
Na Tabela a seguir, temos a descrição das principais funções matemáticas, disponíveis no VBA.
Tabela - Funções para cálculos matemáticos.
Função | Descrição |
Abs(n) | Retorna o valor absoluto (sem sinal), do número n. |
Atn(n) | Retorna o valor do arco, cuja tangente é o número n. O número n deve ser fornecido em radianos. |
Cos(n) | Retorna o coseno do número n. O número n deve ser fornecido em radianos. |
Exp(n) | Retorna o número e (logaritmo neperiano e=2,7183), elevado no número n. |
Log(n) | Retorna o logaritmo natural de um número n. |
Rnd(n) | Retorna um número aleatório entre 0 e 1. |
Sgn(n) | Retorna um número inteiro, indicando o sinal do número n. Retorna –1 para números negativos e 1 para números positivos. |
Sin(n) | Retorna o seno do número n. O número n deve ser fornecido em radianos |
Sqr(n) | Retorna a Raiz quadrada do número n. |
Tan(n) | Retorna a tangente do número n. O número n deve ser fornecido em radianos. |
NOTA: Para converter graus para radianos, multiplique o valor em graus por pi (3.14), e divida o resultado por 180.
Na Tabela a seguir temos alguns exemplos de utilização das funções matemáticas do VBA.
Tabela - Alguns exemplos de utilização das funções matemáticas.
Exemplo | Valor de retorno. |
Abs(-2350) | 2350 |
Atn(2) | 1,1071487177 |
Cos(0) | 1 |
Exp(1) | 2,71828182845905 |
Log(1000) | 6,90775527898214 |
Rnd*10 | Gera um número aleatório entre 0 e 10 |
Sgn(-235) | Retorna –1, pois o número é negativo |
Sin(0) | Retorna 0 |
Sqr(400) | Retorna 20 |
Tan(0) | Retorna 0 |
Conclusão:
Nesta parte do tutorial, falei sobre as funções para o trabalho com campos e valores do tipo datas e horas e também sobre as funções para cálculos matemáticos. Estas funções são muito utilizadas em rotinas de tratamento e cálculos com datas, horas, prazos e outros problemas complexos.
Nota: Este tutorial foi retirado da apostila da
Semana 2, do Curso de Excel Avançado e VBA. Você pode
adquirir os três arquivos, com todo o conteúdo deste
curso, em um total de 550 páginas de conteúdo, com
exemplos detalhados, passo-a-passo, por apenas R$ 20,00 para envio
através de Download. Para saber como adquirir este curso, Clique
Aqui.
Universidade do Access - Curso Completo de Access
com tudo para você dominar o Access - do Básico ao
Avançado - até a Criação de Sistemas Profissionais
Completos - Passo a Passo - Tela a Tela
Aplica-se ao Access 2019, 2016, 2013 e 2010!
Para todos os detalhes, acesse:
Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434
Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208
Todos os direitos reservados, Júlio Battisti 2001-2025 ®
LIVRO: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2016 - CURSO COMPLETO E PRÁTICO
DOMINE A PROGRAMAÇÃO VBA NO EXCEL - 878 PÁGINAS - CLIQUE AQUI