Código de Power Builder - Calcular dias y horas entre 2 fechas

<<>>

Calcular dias y horas entre 2 fechasgráfica de visualizaciones


Power Builder

estrellaestrellaestrellaestrellaestrella(4)
Publicado el 24 de Diciembre del 2002 por Victor Arreola
32.585 visualizaciones desde el 24 de Diciembre del 2002. Una media de 49 por semana
Función que calcula dias y horas entre 2 fechas

Versión 1
estrellaestrellaestrellaestrellaestrella(4)

Publicado el 24 de Diciembre del 2002gráfica de visualizaciones de la versión: Versión 1
32.586 visualizaciones desde el 24 de Diciembre del 2002. Una media de 49 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
/**********************************************************************
Lenguaje: Power Builder 6.5(sirve para ver. 5,6,6.5,7...)
Funcion PB: Calcular dias y horas entre 2 fechas.
Retorna : string '380 Dias 23 horas 48 minutos 58 segundos'
Ejemplo : ls_diferencia = fx_tiempo_dif( ldt_fecha_inicial , ldt_fecha_final 
)
Sintaxis: string fx_tiempo_dif(datetime arg_dt_tiempo1 ,datetime 
arg_dt_tiempo2)
Autor   : Lic. Victor Arreola //:-)
**********************************************************************/
Declara Funcion fx_: string fx_tiempo_dif(datetime arg_dt_tiempo1 ,datetime
arg_dt_tiempo2)
 
dec {18} ldec_hora=0,ldec_min=0,ldec_seg=0,ldec_paso=0
long ll_dias
String ls_Dias='Dias ' ,ls_tiempo
 
// el tiempo natural equivale a:
// dia natural = 24 Horas naturales de reloj
//             = 00:00:00 horas al 23:59:59 horas naturales
 
IF ISNULL(arg_dt_tiempo1) OR ISNULL(arg_dt_tiempo2) THEN  //valida 
parametros completos
  RETURN ''
Endif
 
IF date(arg_dt_tiempo1) > date(arg_dt_tiempo2) THEN    //Valida la 
diferencia en dias
    RETURN '*Post-Fechado*(Fecha Inicial es mayor que Final.)'
End if
 
ll_dias= DaysAfter( date(arg_dt_tiempo1), date(arg_dt_tiempo2) ) //obtiene 
los dias trancurridos
 
ldec_paso =  SecondsAfter( time(arg_dt_tiempo1), time(arg_dt_tiempo2))
//obtiene los segundos trancurridos
 
if ldec_paso<> abs(ldec_paso) and ll_dias<>0 then //si los seg.son 
negativos( 10:00 vs 8:00 ) quiere decir que no transcurrido/conto el ultimo
dia
ll_dias = ll_dias - 1                        //se resta el dia no 
trancurrido
     ldec_paso = (24*60*60) + ldec_paso //se ajusta la diferencia de 
horas
end if
 
ldec_seg = round(Mod(ldec_paso,60),2)         // se obtienen el residuo en 
segundos con el total de segundos.
 
ldec_paso = Truncate(round(ldec_paso/60,2),0) // quitas el residuo anterior 
y quedan en segundos completos para formar minutos y horas(son multiplos).
 
ldec_min = round(Mod(ldec_paso,60),2)          // se obtienen el residuo en 
minutos.
 
ldec_hora = Truncate(round(ldec_paso/60,2),0)  // quitas el residuo anterior 
y formas las horas.
//aqui se pueden continuar desglozando las operaciones para obtener 
dias,mes,años...
 
//concatena cadena a retornar
ls_tiempo = string(ll_dias,'##000')+'
'+ls_Dias+string(ldec_hora,'#00:')+string(ldec_min,'00:')+string(ldec_seg,'00')
 
return ls_tiempo
/*eof funcion fx_tiempo_dif***************************************/



Comentarios sobre la versión: Versión 1 (4)

odaly
04 de Noviembre del 2004
estrellaestrellaestrellaestrellaestrella
hola me gustaria que me enviases un ejemplo de tu programacion por fabor es interesante
chau
Responder
odaly
04 de Noviembre del 2004
estrellaestrellaestrellaestrellaestrella
hola me gustaria que me enviases un ejemplo de tu programacion por fabor es interesante
chau
Responder
Alex Castillo Abarzua
14 de Agosto del 2008
estrellaestrellaestrellaestrellaestrella
Muy buena
Responder
JAVIER
14 de Octubre del 2008
estrellaestrellaestrellaestrellaestrella
gracias por la ayudad; quiero saber como hacer que cuando la contraseña es incorrecta llame un sonido(alarma) que el sistema esta usado por alguien que no es integrante del sistema(intruso)gracias
Responder

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios

http://lwp-l.com/s416