SoloCodigo
Programación General => Visual Basic 6.0 e inferiores => VBA => Mensaje iniciado por: hipelos en Viernes 20 de Junio de 2003, 08:11
-
¿alguien sabe alguna funcion o algo para obtener el ultimo dia del mes de la fecha que le paso yo?
-
Estoy seguro de que existe una función que devuelve el último día del mes, pero hasta que alguien te indique cuál es, seguro que va a resulverte el problema esta función que se me ha ocurrido:
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
' TextBox en el que se introduce la fecha a valorar
If KeyCode = 13 Then
Dim nDias As Integer ' Este será el valor del último día del mes
nDias = DiasMes(Text1.Text)
End If
End Sub
Private Function DiasMes(dFecha As Date) As Integer
Dim nDias As Integer
Dim dMes As Date
On Error Resume Next
nDias = 31
Do
dMes = Str(nDias) & Mid(dFecha, 3)
If Err = 0 Then
Exit Do
End If
Err = 0
nDias = nDias - 1
Loop
DiasMes = nDias
End Function
Te adjunto el programita que he preparado para conseguir este cálculo.
También tengo que indicarte que este tema debías de haberlo planteado en el foro de Visual Basic, no en VBA...
Saludos y suerte
-
Este código coloca el día 31 al mes en custión y después mira si da error o no, repitiendo el bucle hasta que la fecha es válida p.e. el 31 de febrero no existe así que le quita un día, como el 30 de febrero no existe le quita otro día etc...
Dim fecha As Boolean
Dim dia, mes, año As Integer
fecha = False
dia = 31
mes = Month(mes en cuestión)
año = Year(año en cuestión)
Do Until fecha = True
If IsDate(dia & "/" & mes & "/" & año) Then
'mi rutina también miraba que no fuera ni sábado ni domingo
' If Weekday(dia & "/" & mes & "/" & año) = 1 Then dia = dia - 2
' If Weekday(dia & "/" & mes & "/" & año) = 7 Then dia = dia - 1
fecha = True
Else
dia = dia - 1
End If
Loop