CitarSupongo que para saber si un mes tiene 30 o 31 días habrá que usar arrays... y eso se escapa de mis humildes conocimientos xD
Algún alma caritativa podría arrojar algo de luz sobre este perdido programador? xD
Quizas esto te sirva!!
Código (vb) [Seleccionar]
Option Explicit
Private Sub Form_Load()
MsgBox "Expira el día " & Expira
End Sub
Public Function Expira() As Byte
Select Case Month(Date)
Case 1, 3, 5, 7, 8, 10, 12:
If Day(Date) = 31 Then
Expira = 1
Else
Expira = Day(Date) + 1
End If
Case 2
If Bisiesto(Year(Date)) = True Then
If Day(Date) = 29 Then
Expira = 1
Else
Expira = Day(Date) + 1
End If
Else
If Day(Date) = 28 Then
Expira = 1
Else
Expira = Day(Date) + 1
End If
End If
Case Else
If Day(Date) = 30 Then
Expira = 1
Else
Expira = Day(Date) + 1
End If
End Select
End Function
Public Function Bisiesto(Año As Integer) As Boolean
On Error GoTo nError
'Los años divisibles por 4 son bisiestos, pero cada 400 años se deben eliminar 3 _
bisiestos. Para ello, no son bisiestos los que se dividen por 100, menos los que se _
dividen por 400, que sí son bisitestos.
If Año Mod 4 = 0 Then
If (Año Mod 100 = 0) And Not (Año Mod 400 = 0) Then
Bisiesto = False
Else
Bisiesto = True
End If
Else
Bisiesto = False
End If
'Salimos de la función
Exit Function
nError:
Bisiesto = False
End Function