• Jueves 28 de Marzo de 2024, 16:57

Autor Tema:  ultimo dia del mes  (Leído 5909 veces)

darksito

  • Miembro MUY activo
  • ***
  • Mensajes: 145
  • Nacionalidad: pe
    • Ver Perfil
ultimo dia del mes
« en: Miércoles 28 de Octubre de 2009, 21:00 »
0
hola quisiera saber como obtener el ultimo dia de un mes ?  osea saber cuantos dias trae un mes si trae 31 o 30 o como febrero q aveces trae 28 o 29 gracias


sorry ya lo resolvi encontre una funcion en internet pero si ay otro codigo pueden agregalo


F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: ultimo dia del mes
« Respuesta #1 en: Miércoles 28 de Octubre de 2009, 22:58 »
0
utilizando un arreglo es facil

Código: Visual Basic
  1.  
  2. Function ObtenerUltimoDiaMes(Integer Mes, Integer Anio)
  3.      if (Mes>12 OR Mes<1) then Return -1 //Error
  4.      Integer DiasMes[12] = {31,28,31,30,31,30,31,31,30,31,30,31}
  5.      if Mod(Anio,4)=0 then DiasMes[2] =29
  6.      Return DiasMes[Mes]
  7. End Function
  8.  
  9.  

Puede que tenga algunos errores, No la probe pero por ahi y te puede servir


Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

davidmolina1

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
Re: ultimo dia del mes
« Respuesta #2 en: Lunes 9 de Noviembre de 2009, 01:17 »
0
El truco consiste en componer una fecha con el día 1 del mes siguiente al que deseas saber el número de días. Hay que tener cuidado con el mes de diciembre que pasa a ser enero del año siguiente.

A esa fecha le restas un día y ya tienes el número de días.

Esto te soluciona el tema de los bisiestos ya que no solo hay que tener en cuenta los múltiplos de 4 sino que además cada 400 años hay excepciones.

Por ejemplo los meses de febrero del año 2100, 2200, 2300, 2500, 2600, 2700, ... no serán bisiestos.
mientras que los meses de febrero de 1600, 2000, 2400, 2800, ... si lo son.

Bueno al grano, el método:

Date ld_dia, ld_dia_sigte
Long  ll_dia, ll_mes, ll_anio

if not isDate (String (ld_dia)) then return -1

ll_mes = Month (ld_dia)
ll_anio = Year (ld_dia)

if ll_mes = 12 then
   ll_anio ++
   ll_mes = 1
else
   ll_mes ++
end if

ld_dia_sigte = Date ('01/'+ String (ll_mes) + '/'+ String (ll_anio))

Return Day (RelativeDate (ld_dia_sigte, -1))

davidmolina1

  • Miembro activo
  • **
  • Mensajes: 51
    • Ver Perfil
Re: ultimo dia del mes
« Respuesta #3 en: Martes 2 de Marzo de 2010, 21:21 »
0
Claro que el método que pongo depende de que los de sybase no cometan el mismo error que los de sony con la PS3.

"
Ayer, 1 de marzo, los usuarios de Playstation 3 (PS3) se llevaron un buen susto cuando vieron que muchas de las funciones de la consola daban error. El dispositivo “pensaba” que 2010 era bisiesto y el error se produjo al no existir el día 29 del segundo mes del año. Hoy 2 de marzo, es el día de resurrección de las PS3 de Sony.

"

Para leer mas ...

http://www.redusers.com/las-ps3-falla-por-reconocer-el-2010-como-ano-bisiesto