Programación General > Power Builder
ultimo dia del mes
(1/1)
darksito:
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:
utilizando un arreglo es facil
--- Código: Visual Basic --- Function ObtenerUltimoDiaMes(Integer Mes, Integer Anio) if (Mes>12 OR Mes<1) then Return -1 //Error Integer DiasMes[12] = {31,28,31,30,31,30,31,31,30,31,30,31} if Mod(Anio,4)=0 then DiasMes[2] =29 Return DiasMes[Mes]End Function
Puede que tenga algunos errores, No la probe pero por ahi y te puede servir
Saludos
davidmolina1:
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:
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
Navegación
Ir a la versión completa