Thursday, November 15, 2012

Restar dos fechas

Cómo restar dos fechas en Visual Basic .Net vb.net DateTimePicker

Problema: Dada dos fechas, cómo restarlas para saber cuántos días, horas, minutos o segundos han transcurrido.

En mi caso, yo tengo configurado en una tabla el número de días permitidos para tener acceso a ver cierto reporte a partir de la fecha actual. Por ejemplo, si hoy es 15/11/12 y el número configurado es 15 días, debo saber cuántos días hay entre la fecha que eligió el usuario a la fecha actual. Si esa resta es igual o menor al número de días que tengo configurado (15 en este caso), podrá visualizar el reporte.

Podemos hacerlo de dos maneras: utilizando "Subtract" (TimeSpan) y "DateDiff"

Dim resta1 As TimeSpan = Now.Date.Subtract(Me.dtpFechaInicial.Value.Date)

Dim resta2 As Integer = Now.Date.Subtract(Me.dtpFechaInicial.Value.Date).Days

Dim resta3 As Integer = DateDiff(DateInterval.Day, Me.dtpFechaInicial.Value.Date, Now.Date)

resta1 nos devuelve un objeto de tipo TimeSpan. Al darle resta1. nos lista los métodos disponibles y uno de ellos es Days. Eso devuelve resta2, un Integer. Significa el número de días que hay entre el rango de fechas. Por otro lado, resta3 nos devuelve asimismo el número de días que hay entre el rango de fechas dados que también es un Integer.

HaPPy Coding =)