Foros del Web » Programando para Internet » ASP Clásico »

conocer cantidad de días de un mes "x"

Estas en el tema de conocer cantidad de días de un mes "x" en el foro de ASP Clásico en Foros del Web. Auch! ¿Cómo era? Hay una forma de conocer la cantidad de días que tiene un determinado mes. ¿Alguien la recuerda para desaznarme??? Saludos!!!!...
  #1 (permalink)  
Antiguo 24/01/2005, 15:09
Avatar de TurKa  
Fecha de Ingreso: enero-2003
Ubicación: Gerli, Avellaneda
Mensajes: 543
Antigüedad: 21 años, 4 meses
Puntos: 4
conocer cantidad de días de un mes "x"

Auch! ¿Cómo era?
Hay una forma de conocer la cantidad de días que tiene un determinado mes. ¿Alguien la recuerda para desaznarme???

Saludos!!!!
__________________
Programación LAMP con Scrum y XP
www.eugeniabahit.com.com.ar
  #2 (permalink)  
Antiguo 24/01/2005, 16:02
 
Fecha de Ingreso: enero-2005
Mensajes: 16
Antigüedad: 19 años, 4 meses
Puntos: 0
apañejos

No conozco una función directa, utilizando funciones de fecha se me ocurren varias formas, por ejemplo:
- En una función con On Error Resume Next, hacer un bucle desde el día 28 de ese mes hasta el 31. Controlando si el bucle termina correctamente o en qué momento da error puedes ver cuál es el último día del mes.
- Dado un mes, se coge el primer día del mes siguiente y se le resta un día.

A ver si te sirve.
  #3 (permalink)  
Antiguo 24/01/2005, 16:56
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 5 meses
Puntos: 16
mira, el unico problema que veo seria con febrero, ya que es el unico que cambia pero con que sepas el mes sabras los dias, es decir, con que sepas que el mes es 12 sabras que tiene 31 dias, solo faltaria saber los febreros en años bisistos, mismos que con una funcion podras sacarlo ya que indiferentemente es cada cuatro años...creo que esa seria la logica para hacerlo manualmente, no se si exista una forma mas facil o automatizada
__________________
CreandoWebs.com
www.creandowebs.com
PLANTILLAS TEMPLATEMONSTER CON 10% DE DESCUENTO
  #4 (permalink)  
Antiguo 24/01/2005, 22:27
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 5 meses
Puntos: 4
<%
Function Diasenelmes(Mes, anio)
Dim Valor
Valor = DateAdd("d", -1, DateSerial(anio, Mes + 1, 1))
Diasenelmes = Day(Valor)
End Function
%>
<%=Diasenelmes(1, 2005)%><br>
<%=Diasenelmes(2, 2005)%><br>
<%=Diasenelmes(3, 2005)%><br>
<%=Diasenelmes(4, 2005)%><br>
<%=Diasenelmes(5, 2005)%><br>
<%=Diasenelmes(6, 2005)%><br>
<%=Diasenelmes(7, 2005)%><br>
<%=Diasenelmes(8, 2005)%><br>
<%=Diasenelmes(9, 2005)%><br>
<%=Diasenelmes(10, 2005)%><br>
<%=Diasenelmes(11, 2005)%><br>
<%=Diasenelmes(12, 2005)%><br>


miren en la biblioteca de funcoines hay bastantes que nos ayudan mucho..
suerte. esta la acaabarond de poner.
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #5 (permalink)  
Antiguo 25/01/2005, 08:39
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Buena la función, pero como dice sjam7, no hay necesidad de complicarse con una rutina que calcule eso ya que 11 de los 12 meses son constantes y con in IF de una linea se sabe si Febrero tiene 28 o 29 días.
  #6 (permalink)  
Antiguo 25/01/2005, 15:37
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 5 meses
Puntos: 4
cierto tienes razon.
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #7 (permalink)  
Antiguo 25/01/2005, 21:27
Avatar de TurKa  
Fecha de Ingreso: enero-2003
Ubicación: Gerli, Avellaneda
Mensajes: 543
Antigüedad: 21 años, 4 meses
Puntos: 4
Chicos mil gracias!!!!
Hasta hace un tiempo recuerdo que me habían pasado una rutina que con solamente 4 o 5 líneas me daba todos los días exactos, pero que merd! la perdí.
Así que lo resolví usando esto (lo dejo por si sirve a alguien aunque hay que modificar el tema de febrero para saber si es de 28 o 29):
<%
Dim thisMes(12)
thisMes(0) = 0
thisMes(1) = 31
thisMes(2) = 28
thisMes(3) = 31
thisMes(4) = 30
thisMes(5) = 31
thisMes(6) = 30
thisMes(7) = 31
thisMes(8) = 31
thisMes(9) = 30
thisMes(10) = 31
thisMes(11) = 30
thisMes(12) = 31
CantDiasMes = CInt(thisMes(Month(Date())))
%>

No se rían del "thisMes" sucede que en mi código ya tenía un esteMes, jeje
Con esa rutina lo único que hago es saber que cantidad de días tiene el mes actual, pero, para cualquier mes, basta con colocar como índice el número de mes:
CInt(thisMes(Month(3))) --> corresponde a marzo, etc...

Si a alguien le sirve, acá la dejo.

Besos y mil gracias!!
__________________
Programación LAMP con Scrum y XP
www.eugeniabahit.com.com.ar
  #8 (permalink)  
Antiguo 26/01/2005, 04:54
 
Fecha de Ingreso: octubre-2004
Mensajes: 104
Antigüedad: 19 años, 7 meses
Puntos: 0
Una cosilla:

Los años bisiestos no son siempre cada 4 años...

Años bisiestos son los múltiplos de 4, y los múltiplos de 100 que a la vez lo sean de 400. Es decir, que el año 2000 si seria bisiesto, pero por ejemplo el 1900 no.
  #9 (permalink)  
Antiguo 26/01/2005, 05:34
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 21 años, 9 meses
Puntos: 16
eso pasa por no hacerle caso a los mayas
  #10 (permalink)  
Antiguo 26/01/2005, 08:35
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Cita:
Iniciado por PosDon
Años bisiestos son los múltiplos de 4, y los múltiplos de 100 que a la vez lo sean de 400. Es decir, que el año 2000 si seria bisiesto, pero por ejemplo el 1900 no.
Otra forma de decirlo:
Los años bisiestos son aquellos divisibles entre 4 pero que no lo sean de 100 a menos que también lo sean de 400.

  #11 (permalink)  
Antiguo 26/01/2005, 14:42
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 5 meses
Puntos: 4
bueno, como sugerencia seria bueno hacer una funcion con todos los datos aqui pasados, incluyendo los años bisiestos y ademas los dias de cada mes.. y la inclumos en la biblioteca de funciones.
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #12 (permalink)  
Antiguo 26/01/2005, 22:20
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 5 meses
Puntos: 16
iba a morir creyendo que era cada 4 años siempre....habra que saber bien primero cual es la forma normal de sacar un año bisiesto para luego hacer una funcion que lo haga automaticamente
__________________
CreandoWebs.com
www.creandowebs.com
PLANTILLAS TEMPLATEMONSTER CON 10% DE DESCUENTO
  #13 (permalink)  
Antiguo 27/01/2005, 01:38
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 21 años, 1 mes
Puntos: 0
sjam7 que yo sepa los años bisiestos son cada 4 años siempre. ¿O lo han cambiado?
  #14 (permalink)  
Antiguo 27/01/2005, 07:30
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 5 meses
Puntos: 4
la formula es exactamente como lo dice Myakire asi es: solo falta implementarlo en funcion uniendolo con las funcion de TurKa
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #15 (permalink)  
Antiguo 27/01/2005, 09:14
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Cita:
sjam7 que yo sepa los años bisiestos son cada 4 años siempre. ¿O lo han cambiado?
¿Cómo está eso?, NUNCA han sido 4 cada cuatro años exactamente por la misma razón del por que existe el año bisiesto: por que la rotación/traslación de la tierra no es exactamente 24 horas ni 365 días (de hecho la rotación no afecta pero es bueno saberlo). Hay una pequeña diferencia que al acumularla genera el año bisiesto.

Para saber si un año es bisiesto basta con hacer un IF:

Código:
  IF ( (numero MOD 400 = 0) OR ((numero MOD 4 = 0) AND (numero MOD 100 <> 0)) ) Then
     Response.Write "Es Bisiesto"
  Else
     Response.Write "NO Es Bisiesto"
  End IF
  #16 (permalink)  
Antiguo 27/01/2005, 09:54
 
Fecha de Ingreso: mayo-2003
Mensajes: 866
Antigüedad: 21 años, 1 mes
Puntos: 0
Pues si teniais razon:
AÑO BISIESTO
Este año es año bisiesto, esto quiere decir que este año tiene 366 días en vez de 365. Esto hace que el año calendario se mantiene según las estaciones del año. En los años bisiesto, febrero tiene 29 días en vez de 28.
La tierra tarda 365,256 dias en darle la vuelta al sol. Por eso, cada 4 años, necesitamos un año bisiesto, para que las estaciones no se confundan, y el primer día de primavera, por ejemplo, siga siendo el 21 de marzo. Si todos los años solo contasemos 365 días, después de 12 años estaríamos 3 días desfasados....
En el año 46 antes de Cristo, Julius Caesar aprobó el calendario juliano que incorporó el año bisiesto. Su sucesor, el Calendario Gregoriano, incluyó años bisiestos cada cuatro años, según un ciclo de 400 años. La mayoría de países iba adoptando este calendario, fijando el primer día del año en el 1 de enero.
El calendario gregoriano, así denominado por ser su promotor el papa Gregorio XIII, vino a sustituir en 1582 al calendario juliano utilizado desde que Julio César lo instaurase en el año 45 adC.

La reforma gregoriana surge como necesidad de llevar a la práctica uno de los acuerdos del concilio de Trento: el de ajustar el calendario para eliminar el desfase producido desde un concilio anterior, el de Nicea de 325, en el que se había fijado el momento astral en que debía celebrarse la Pascua y, en relación con ésta, las demás fiestas religiosas móviles. Lo que importaba, pues, era la regularidad del calendario litúrgico, para lo cual era preciso introducir determinadas correcciones en el civil.

En el concilio de Nicea se determinó que se conmemorase la Pascua el domingo siguiente al plenilunio posterior al equinoccio de primavera. Aquel año 325 el equinoccio había ocurrido el día 21 de marzo (*), pero con el paso del tiempo ese evento se había ido adelantando hasta el punto de que en 1582, fecha en la que se introdujo el nuevo calendario, el desfase era ya de 10 días. Este desacuerdo provenía de un inexacto cómputo del número de días con que cuenta el año astronómico; según el calendario juliano que instituyó un año bisiesto cada cuatro, el año astronómico estaba constituido por 365,25 días, mientras que la cifra correcta es de 365,2422454, o lo que es lo mismo, 365 días, 5 horas, 48 minutos y 45,5 segundos. Esos más de 11 minutos de diferencia anual habían supuesto en los 1257 años que mediaban entre 1582 y 325 un error acumulado de aproximadamente 10 días. Decretó, pues, Gregorio XIII que el día siguiente al jueves 4 de octubre de 1582 pasase a ser el viernes día 15 de ese mes y año, con lo que dejaron de vivirse los días intermedios; para paliar en lo sucesivo los erróneos efectos del calendario juliano, el gregoriano propuso que los años centenarios no fuesen bisiestos, con excepción de los múltiplos de 400.
  #17 (permalink)  
Antiguo 27/01/2005, 09:56
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
aahhh, gente tan incrédula y desconfiada, jejejeje, ........¡¡saludos!!
  #18 (permalink)  
Antiguo 04/02/2005, 14:35
Avatar de CH4SK4  
Fecha de Ingreso: febrero-2005
Mensajes: 8
Antigüedad: 19 años, 4 meses
Puntos: 0
Sonrisa Holas Amix

HOLAS

YO TAMBIEN SOY NOOB ASI QUE TOY UNA MANO

TAMBIEN PODRIAS USAR ESTE CODIGO

Private Function Dias_M(Mes, Ano)
Select Case Mes
Case 1, 3, 5, 7, 8, 10, 12
Dias_m = 31
Case 4, 6, 9, 11
Dias_m = 30
Case 2
If IsDate("Febrero 29, " & ano) Then
Dias_m = 29
Else
Dias_m = 28
End If
End Select
End Function

CLARO ANTES DE INVOCARLO DAR VALORES A Mes, Ano

BYE BYE

Última edición por CH4SK4; 04/02/2005 a las 14:50
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 21:50.