* Funcion .......: DifHMS * Creada ........: Julio 16, 2003 By Sukos * Uso ...........: Obtiene la diferencia en Horas, Minutos y Segundos entre dos Horas * Llamada .......: DifHMS(Eduardo Espejel Angeles, ) * Donde .........: = Expresion de Hora Inicial, en formato "HH:MM:SS" * = Expresion de Hora Final, en formato "HH:MM:SS" * Observaciones .: Si la Hora Inicial es mayor que la Hora Final esta funcion supone que el proceso inicio * antes de la medianoche y concluyo despues de las 0 horas, en este caso realiza la * operacion tomando en cuenta desde la Hora inicial hasta la medianoche mas lo que resulte * de la medianoche hasta la hora final. * Ejemplo .......: DifHMS("00:00:05","00:00:05") -----> Devuelve "00:00:00" * DifHMS("16:00:10","17:00:15") -----> Devuelve "01:00:05" * DifHMS("23:59:58","00:00:05") -----> Devuelve "00:00:07" * Notas .........: Si se usa en un metodo de formularios, solamente convierte a comentario * la primera linea agregandole un "*" al inicio y la llamas con "Objeto.DifHMS( , )" * -------------------------------------------------------------------------------------------------------------------------- Func DifHMS(Vl_Hora1, Vl_Hora2) Local Vl_Resp, Vl_Hh1, Vl_Mm1, Vl_Ss1, Vl_Hh2, Vl_Mm2, Vl_Ss2 Local Vl_HoraCompl1, Vl_HoraCompl2, Vl_DifTiempo, Vl_DifHh, Vl_DifMm, Vl_DifSs Vl_Hh1=Int(Val(SubStr(Vl_Hora1,1,2))) Vl_Mm1=Int(Val(SubStr(Vl_Hora1,4,2))) Vl_Ss1=Int(Val(SubStr(Vl_Hora1,7,2))) Vl_Hh2=Int(Val(SubStr(Vl_Hora2,1,2))) Vl_Mm2=Int(Val(SubStr(Vl_Hora2,4,2))) Vl_Ss2=Int(Val(SubStr(Vl_Hora2,7,2))) Vl_HoraCompl1=DateTime(100,1,1,Vl_Hh1,Vl_Mm1,Vl_Ss1) Vl_HoraCompl2=DateTime(100,1,1,Vl_Hh2,Vl_Mm2,Vl_Ss2) Vl_HoraCero1=DateTime(100,1,1,23,59,59) Vl_HoraCero2=DateTime(100,1,1,0,0,0) If Vl_HoraCompl1=Vl_HoraCompl2 Store 0 To Vl_DifHh, Vl_DifMm, Vl_DifSs Else If Vl_HoraCompl1 < Vl_HoraCompl2 Vl_DifTiempo=Vl_HoraCompl2-Vl_HoraCompl1 Else Vl_DifTiempo=(Vl_HoraCero1-Vl_HoraCompl1)+(Vl_HoraCompl2-Vl_HoraCero2)+1 EndIf Vl_DifHh=Int(Vl_DifTiempo/3600) && Calcula las Horas Vl_DifTiempo=Int(Vl_DifTiempo%3600) && Quita las horas obtenidas Vl_DifMm=Int(Vl_DifTiempo/60) && Calcula los minutos Vl_DifSs=Int(Vl_DifTiempo%60) && Calcula los Segundos EndIf Vl_Resp=PadL(Vl_DifHh,2,"0")+":"+PadL(Vl_DifMm,2,"0")+":"+PadL(Vl_DifSs,2,"0") Retu Vl_Resp
30 de julio de 2003
Obtiene la diferencia entre 2 horas
Toma en cuenta cuando la hora inicial es antes de medianoche y la final es después
23 de julio de 2003
Saber si una tabla esta ordenada descente o ascendentemente
Este truco es bastante útil para evitar volver a ordenar una tabla si ya esta ordenada de la forma que la necesitamos....
David Amador (Davphantom)
IF "DESCENDING" $ SET("ORDER") ?'Descendente' ELSE &&ASCENDENTE ?'Ascendente' ENDIFEsta es otra forma .... devolverá .T. si esta ordenado Descendentemente y .F. si esta ordenado Ascendentemente
?"DESCENDING" $ SET("INDEX")Este truco me fascina :-)
David Amador (Davphantom)
21 de julio de 2003
Mover formulario agarrandolo por cualuier parte
Este código nos permite nos mover formulario agarrándolo por cualquier parte.
#define WM_LBUTTONUP 514 #define WM_SYSCOMMAND 274 #define SC_MOVE 61456 #define MOUSE_MOVE 61458 Declare integer SendMessage in "User32"; Long hwnd, Long wMsg, Long wParam, Long lParam * Este código se pondrá en el control_MouseDown ... PUBLIC lngRet As Long * Envía un MouseUp al Control =SendMessage(thisform.hWnd, WM_LBUTTONUP, 0, 0) * Envía la orden de mover el form =SendMessage(thisform.hWnd, WM_SYSCOMMAND, MOUSE_MOVE, 0)David Amador
Suscribirse a:
Entradas
(
Atom
)