Jump to content

Contas de datas


Recommended Posts

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.


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


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.


        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"

Link to comment
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

  • Create New...

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.