Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

mekanis

Contas de datas

Recommended Posts

mekanis

Pessoal.

Como é que eu posso fazer contas com datas? (datetimepicker)

Penso que tenha que utilizar a função "today", tipo today - dtpicker.value

Mas na tou bem a ver como, podem ajudar?

Cumpz

Share this post


Link to post
Share on other sites
ribeiro55

Desde que os datatypes sejam ambos date ou datetime, podes operar em datas normalmente, originando TimeSpans no processo.

Os TimeSpans representam intervalos de tempo que podem ser consultados desde horas até ticks.

Exemplo:

Dim TS As TimeSpan = DateTime.Parse("01-01-2010 15:30") - DateTime.Parse("01-01-2010 15:00")
        MsgBox(TS.Minutes) 'Devolve 30

Podes também utilizar os métodos Add(unidade), como AddDays ou AddHours para adicionar ou subtrair tempo directamente para um datatype Date / DateTime

Exemplo:

MsgBox(DateTime.Parse("01-01-2010 15:30").AddHours(-1).ToString) 'Devolve 01-01-2010 14:30

Para consultares a data actual, usa Now. Today não serve para muitas operações pois não devolve a hora do sistema, só a data.

Exemplo:

        Dim TS As TimeSpan = Now - New Date(Now.Year, 1, 1)
        MsgBox(TS.Days & " dias desde o inicio deste ano.")

Exemplo de despiste para o Today (caso haja dúvida):

        Dim TS As TimeSpan = Now - New Date(Now.Year, 1, 1)
        MsgBox(TS.Hours & " horas desde o inicio deste dia.")
        'Devolve correctamente as horas

        Dim TS As TimeSpan = Today - New Date(Today.Year, 1, 1)
        MsgBox(TS.Hours & " horas desde o inicio deste dia.")
        'Devolve 0 (zero), independentemente da hora


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.