Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Numero de dias en un mes y bisiesto!!!!!!!

Estas en el tema de Numero de dias en un mes y bisiesto!!!!!!! en el foro de Visual Basic clásico en Foros del Web. Que tal sala, he leeido varias cosas, mas no me he encontrado publicado con el problema que tengo, a ver sino estoy queriendo hacer cosas ...
  #1 (permalink)  
Antiguo 11/02/2005, 17:45
 
Fecha de Ingreso: mayo-2004
Mensajes: 27
Antigüedad: 20 años
Puntos: 0
Exclamación Numero de dias en un mes y bisiesto!!!!!!!

Que tal sala, he leeido varias cosas, mas no me he encontrado publicado con el problema que tengo, a ver sino estoy queriendo hacer cosas que no.
Expongo:
Deseo saber cuantos dias trae un determinado mes, es mes que yo le envie a una determinada función, existe alguna función que me devuelva el numero de dias de un mes???
De igual forma, no he encontrado alguna función que me diga si el año que yo le diga, tiene mes bisiesto o no???

He programado en WEB y existen funciones que permiten realizar estas comparaciones, pero en Visual Basic no he encontrado la función para consegui esto, puedo obtener la fecha en curso, el dia, el mes o el año, pero hasta ahorita no he encontrado la función que me diga lo antes descrito.

Agradeciendo su atención te antemano quedo de ustedes.

Saludos.
  #2 (permalink)  
Antiguo 16/02/2005, 10:35
Avatar de Mosiah  
Fecha de Ingreso: mayo-2002
Ubicación: Vitoria - Madrid
Mensajes: 229
Antigüedad: 22 años
Puntos: 0
No se si existe dicha función pero te puedes crear tu propia función que te diga si un año es bisiesto o no.
Para saber si un año es bisiesto solo necesitas saber si el resto de dividir el año entre 4 es igual a 0.

Lo mismo para los días de un mes.


Última edición por Mosiah; 16/02/2005 a las 10:37
  #3 (permalink)  
Antiguo 18/02/2005, 07:54
Avatar de Skalitiko  
Fecha de Ingreso: febrero-2005
Mensajes: 81
Antigüedad: 19 años, 2 meses
Puntos: 0
Puedes ocupar las funciones Day y Dateadd. Por ejemplo:

private sub Command1_Click()
Dim F as date
dim dia as byte
f=format(#01/01/2005#,"Short Date") ' Seteo la fecha al primer día del mes del cual quiero saber la canridad de días
f=DateAdd("M",1,F) ' le agrego un mes a la fecha para que quede en 01/02/2005
f=DateAdd("d",-1,f)' Le quito un día a la fecha para que me de el último día del mes del cual quiero saber la cantidad de días
dia = Day(f)' extraigo el día de la fecha
msgbox "El mes " & Month(f) & ", tiene " & dia & " días"

End Sub
  #4 (permalink)  
Antiguo 18/02/2005, 12:38
 
Fecha de Ingreso: septiembre-2004
Mensajes: 171
Antigüedad: 19 años, 7 meses
Puntos: 0
para que un mes sea bisiesto tienes que comprobar dos cosas:
que sea multiplo de 4 y no sea multiplo de 100
o que sea multiplo de 400
seria algo como:
if mod(año,4)=0 AND mod(año,100)!=0 OR mod(año,400)=0 then 'lo que sea

Para saber los dias que tiene un mes si no usas funciones puedes crearte tu mismo una que compruebe el numero del mes que es y con select case pos indicas los meses que tienen 31, 30 o 28.

Espero aberme explicao bien
  #5 (permalink)  
Antiguo 20/02/2005, 15:46
 
Fecha de Ingreso: febrero-2005
Mensajes: 30
Antigüedad: 19 años, 2 meses
Puntos: 0
Hola,

Aquí tienes un ejeplo:

Function DiasDelMes(Fecha as String) as Long
Select Case Month(Fecha)
Case 2
If Bisiesto(Year(Fecha)) = True Then
Dia = 29
Else
Dia = 28
End If
Case 1, 3, 5, 7, 8, 10, 12
Dia = 31
Case Else
Dia = 30
End Select

DiasDelMes = Dia
End Function

Function Bisiesto(Num As Integer) As Boolean
If Num Mod 4 = 0 And (Num Mod 100 Or Num Mod 400 = 0) Then
Bisiesto = True
Else
Bisiesto = False
End If
End Function

Espero que te sirva.

Un saludo.
  #6 (permalink)  
Antiguo 20/02/2005, 17:42
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
bueno aqui hay ejemplo bastante sencillo

solo ingresas la fecha alguna fecha del mes que queres saber la fecha y listo..

Código:
Private Sub Command1_Click()
MsgBox DaysInMonth(Date)
End Sub
 Public Function DaysInMonth(dteInput As Date) As Integer
DaysInMonth = DateAdd("m", 1, dteInput) - dteInput
End Function
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:04.