Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: XBDIFF

XBDIFF.m

Go to the documentation of this file.
  1. XBDIFF ; IHS/ADC/GTH - RETURN DIFFERENCE BETWEEN TWO DATE/TIMES ; [ 02/07/97 3:02 PM ]
  1. ;;3.0;IHS/VA UTILITIES;;FEB 07, 1997
  1. ;
  1. ; Passed two date/times this routine returns the difference
  1. ; in days, hours, minutes, seconds separated by colons ":".
  1. ;
  1. ; The date/times must be passed in the variables X and X1.
  1. ; The result will be returned in X. X1 will be killed.
  1. ;
  1. ; If either X or X1 are invalid X will be returned as -1 and
  1. ; X1 will be killed.
  1. ;
  1. ; The date/times may be passed in $HOROLOG format or in
  1. ; internal FileMan format.
  1. ;
  1. ; See also, $$FMDIFF^XLFDT, and $$HDIFF^XLFDT.
  1. ;
  1. START ;
  1. NEW A,B,C,D,E,F,G
  1. D EDIT
  1. Q:X<0
  1. S:X>X1 A=X,X=X1,X1=A
  1. I X?5N1","5N S A=$P(X,",",1),B=$P(X,",",2) I 1
  1. E D H^%DTC S A=%H,B=%T
  1. I X1?5N1","5N S C=$P(X1,",",1),D=$P(X1,",",2) I 1
  1. E S X=X1 D H^%DTC S C=%H,D=%T
  1. S E=C-A S:D<B E=E-1,D=D+86400 S D=D-B,F=D\3600,D=D-(F*3600),G=D\60,D=D-(G*60)
  1. S X=E_":"_F_":"_G_":"_D
  1. KILL %H,%T,%Y,A,B,C,D,E,F,G,X1
  1. Q
  1. ;
  1. EDIT ; EDIT INPUT
  1. D EDITX
  1. Q:X<0
  1. D EDITX1
  1. Q:X<0
  1. I X?5N1"."5N D Q
  1. . I $P(X,".",2)>86399 S X=-1 KILL X1
  1. . Q
  1. S A=$P(X,".",2)
  1. I +$E(A,1,2)<24,+$E(A,3,4)<60,+$E(A,5,6)<60 Q
  1. E S X=-1 KILL X1
  1. KILL A
  1. Q
  1. ;
  1. EDITX ; EDIT X
  1. Q:X?5N1"."5N
  1. Q:X?7N
  1. Q:X?7N1"."1.6N
  1. S X=-1
  1. KILL X1
  1. Q
  1. ;
  1. EDITX1 ; EDIT X1
  1. Q:X?5N1"."5N
  1. Q:X?7N
  1. Q:X?7N1"."1.6N
  1. S X=-1
  1. KILL X1
  1. Q
  1. ;