;Routine Save - 05:51 PM Nov 10, 1999 (Open M [DTM] for MS-DOS/6.4/12APR96 NETWORK WS 32-BIT/Build 02) ;Saved From SYS: %DT AND %DTC IN MSM FORMAT %DT DIDT ;SFISC/XAK-DATE/TIME UTILITY ;8:49 AM 16 Sep 1999 ;;22.0;VA FileMan;**14**;Mar 30, 1999 ;Per VHA Directive 10-93-142, this routine should not be modified. %DT ; I $G(DUZ("LANG"))>1,($G(^DI(.85,DUZ("LANG"),20.2))]"") X ^(20.2) Q CONT ; K % S:$D(%DT)[0 %DT="" S:$G(DIQUIET)!($D(DDS)#2)!($D(ZTQUEUED)) %DT=$P(%DT,"E")_$P(%DT,"E",2) G NA:%DT'["A" W !,$S($D(%DT("A")):%DT("A"),1:"DATE: "),$S($D(%DT("B")):%DT("B")_"//",1:"") R X:$S($D(DTIME):DTIME,1:300) S:'$T X="^",DTOUT=1 I $D(%DT("B")),X="" S X=%DT("B") I "^"[X S Y=-1 K %I,% Q NA S %(0)=X G 1:X'?.ANP,1:$P(X,"@")?15.N,1:$P(X,"@",2)?15.N F %=1:1:$L(X) Q:X?.UNP S Y=$E(X,%) I Y?1L S X=$E(X,1,%-1)_$C($A(Y)-32)_$E(X,%+1,99) I %DT["E",X?."?" D HELP^%DTC G B I %DT["N",X?.N G NO I X?1.A,(X["MID"!(X["NOON")) S X="@"_X I X'?1"NOV".E,X?1"N".1"OW".1P.E G N^%DTC:%DT["T"!(%DT["R")&(%DT'["M") S X=$E(X,2,99),X="T"_$P(X,"OW")_$P(X,"OW",2) I X?1.N." "1.2A!(X?1.N1":"2N." ".2A)!(X?1.N1":"2N1":"2N." ".2A) S X="T@"_X I X?7N1"."1.N G R I X'["@",%DT'["R" G R I %DT'["T",%DT'["R" G NO I %DT["M" G NO S Y=$P(X,"@",2,9),X=$P(X,"@") F %=2,3 S %I=$P(Y,":",%) I %I?1N.E,%I'?2N.PA G 1 S:X="" X="T" S Y=$P(Y,":")_$P(Y,":",2)_$P(Y,":",3,9),%I=Y I Y?1.A S Y=$S(Y["MID":2400,Y["NOON":1200,1:"") G G:Y?4N,G1:Y?6N&(%DT["S"),1:Y'?1.N." ".1(1"AM",1"A",1"A.M",1"PM",1"P",1"P.M").P I %DT["R",Y="" G NO S %I=$P(1_%I,+(1_Y),2) S:%I]"" Y=$P(Y,%I) I Y?5.6N G:%DT'["S" 1 S %(3)=$E(Y,$L(Y)-1,$L(Y)),Y=$E(Y,1,$L(Y)-2) G 1:%(3)>59 I Y?1.2N G:Y'<13 1 S Y=Y_"00" I %I["A" S Y=$S(Y=1200&'$G(%(3)):2400,Y>1159:Y-1200,1:Y) E I Y?1.2"0"2N G:%I["P" 1 E I Y<1200,%I["P"!(Y<600) S Y=Y+1200 G G 1:Y>2400,1:Y#100>59,1:('Y&('$G(%(3)))) S %(1)=$S('Y:".0000",1:Y/10000) G R G1 G 1:Y>240000!'Y,1:$E(Y,3,4)#100>59,1:$E(Y,5,6)#100>59 S %(1)=Y/1000000 R I %DT["F"!(%DT["P") D TY S %(9)=% 7 G 8:X'?7N1".".E&(X'?7N) S Y=$E(X,8,16),%=$E(Y_"000000",2,7) I Y,%DT'["T"!(%DT["M") G NO I %DT["E",(%'?.N)!(%>240000)!($E(%,3,4)>59)!($E(%,5,6)>59) G NO S:Y %(1)=+Y S X=$E(X,4,7)_($E(X,1,3)+1700),%(7)=1 I %DT["I" S X=$E(X,3,4)_$E(X,1,2)_$E(X,5,9) 8 S %I=0,%="" I X'?.N G T^%DTC:"T+-"[$E(X),U:X["^",1:$E(X)?1P,MTH:X?3.A&(%DT["M"),X I %DT'["X",X\300=6!(X?2N) S (%I(1),%I(2))=0,%I(3)=X G 3 F %I=0:1 S Y=$E(X,1,2),X=$E(X,3,9) G OT:Y="" D G:%I="" 1 . I %DT["X",%DT'["M",%I<2,'Y S %I="" Q . S:%I=2 Y=Y_X,X="" . I %DT["X",%I=2,$L(Y)>2,Y'>1799 S %I="" Q . S %I(%I+1)=Y Q ; X S Y=$E(X),X=$E(X,2,99) I Y?1N G A:%?.N,Y I Y?1A G A:%?.A,Y OT D:%]"" % G 1:%I>3,X:Y?1P,1:Y]"",@%I Y D % S %=Y G 1:%I>3,X A S %=%_Y G X TY S %=$H#1461,%=$H\1461*4+(%\365)+141-(%=1460) Q 0 ; 1 W:%DT["E"&'$D(DIER) $C(7),$S('$D(DDS):" ??",1:"") B G %DT:%DT["A",NO U S X="^",%(0)=X NO S Y=-1 G Q:%DT'["A",Q:X["^" W $C(7)," ??" G %DT 2 I %DT["M" S %I(3)=%I(2),%I(2)=0 G 3 I %I(2)>31!'%I(2),%DT'["X" S %I(3)=%I(2),%I(2)=0 G 1:'%I(2)&$G(%(1)) G 3 D TY S %I(3)=% D PF^%DTC:$D(%(9)) G C 3 I %I(3)?2N D G C . I '$D(%(9)) D TY S %(9)=% . N A S A=$E(%(9))*100 . I $E(%(9),2,3)=%I(3) S %I(3)=A+%I(3) Q . I %DT["P" S %I(3)=$S(%I(3)<$E(%(9),2,3):A,1:A-100)+%I(3) Q . I %DT["F" S %I(3)=$S(%I(3)>$E(%(9),2,3):A,1:A+100)+%I(3) Q . S %I(3)=A+%I(3) . I %(9)-%I(3)>80 S %I(3)=%I(3)+100 Q . I %I(3)-%(9)>20 S %I(3)=%I(3)-100 . Q S %I(3)=%I(3)-1700 G 1:%I(3)'?3N C I %DT["I",%I(2)>0 S %=%I(2),%I(2)=%I(1),%I(1)=% I %I(2)="00",'$G(%(7)) G 1 I %DT["M",$G(%I(2)) G 1 I %I(1)>12!(%I(1)="00") G 1 I %I(2)>28,$E("303232332323",%I(1))+28<%I(2),%I(1)-2!(%I(2)-29)!(%I(3)#4)!('(%I(3)#100)&(%I(3)+1700#400)) G 1 D I %DT["M",$G(%I(2)) S %I(2)=0 D P E I $D(%(1)) S:$D(%(3)) %(1)=$E(%(1)_"000",1,5)_%(3) S Y=+(Y_%(1)) I '$E(Y,6,7),Y["." G 1 I %DT["E" S %=Y D DD W " ("_Y_")" S Y=% I $D(%DT(0)) S %=%DT(0),%I=$S(%["-":Y,1:-Y) D:'% Z I $S(%DT["S":%,1:%\.0001/10000)+%I>0 G 1 Q S X=%(0) K %,%I,%H Q Z I $P("NOW",%(0))="" S %=Y E D NOW^%DTC S:%DT(0)["-" %=-% Q DD I $G(DUZ("LANG"))>1 S Y=$$OUT^DIALOGU(Y,"DD") Q Q:'Y S Y=$S($E(Y,4,5):$P($T(M)," ",$E(Y,4,5)+2)_" ",1:"")_$S($E(Y,6,7):$E(Y,6,7)_", ",1:"")_($E(Y,1,3)+1700)_$S(Y[".":"."_$P(Y,".",2),1:"") I Y["." S Y=$P(Y,".")_"@"_$E(Y_0,14,15)_":"_$E(Y_"000",16,17)_$S($E(Y,18,19):":"_$E(Y_0,18,19),1:"") I $D(%DT)#2,%DT["S",Y["@",$P(Y,":",3)="" S Y=Y_":00" Q P S Y=%I(3)_$E(%I(1)+100,2,3)_$E(%I(2)+100,2,3) Q MTH S %=X D % G:%I>3 1 S %I(2)=0 D TY S %I(3)=% D:$D(%(9)) PF^%DTC G D % I %DT["I",%?3.A S %I=9 Q I %?3.A S %=$F($T(M),$E(%,1,3))-4\4 I %>0,%I=1 D . N T S T=%I(1),%I(1)=%,%=T S:%<1&(%'="00")&(%I'=2) %I=9 S %I=%I+1,%I(%I)=%,%="" M ;; JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC %DTC DIDTC ;SFISC/XAK-DATE/TIME OPERATIONS ;10:11 AM 15 Sep 1999 ;;22.0;VA FileMan;**14**;Mar 30, 1999 ;Per VHA Directive 10-93-142, this routine should not be modified. D I 'X1!'X2 S X="",%Y=0 Q S X=X1 D H S X1=%H,X=X2,X2=%Y+1 D H S X=X1-%H,%Y=%Y+1&X2 K %H,X1,X2 Q ; C S X=X1,X2=+$G(X2) I 'X S (X,%H)="" Q D H S %H=%H+X2 D YMD S:$P(X1,".",2) X=X_"."_$P(X1,".",2) K X1,X2 Q S S %=%#60/100+(%#3600\60)/100+(%\3600)/100 Q ; H I X<1410000 S (%H,%T)=0,%Y=-1 Q S %Y=$E(X,1,3),%M=$E(X,4,5),%D=$E(X,6,7) S %T=$E(X_0,9,10)*60+$E(X_"000",11,12)*60+$E(X_"00000",13,14) TOH N DILEAP D . N Y S Y=%Y+1700 S:%M<3 Y=Y-1 . S DILEAP=(Y\4)-(Y\100)+(Y\400)-446 Q S %H=$P("^31^59^90^120^151^181^212^243^273^304^334","^",%M)+%D S %=('%M!'%D),%Y=%Y-141 S %H=(%H+(%Y*365)+DILEAP+%),%Y=$S(%:-1,1:%H+4#7) K %M,%D,% Q ; DOW D H S Y=%Y K %H,%Y Q DW D H S Y=%Y,X=$P("SUN^MON^TUES^WEDNES^THURS^FRI^SATUR","^",Y+1)_"DAY" S:Y<0 X="" Q 7 I '%H S (%,X)="" Q S %=(%H>21608)+(%H>94657)+%H-.1,%Y=%\365.25+141,%=%#365.25\1 S %D=%+306#(%Y#4=0+365)#153#61#31+1,%M=%-%D\29+1 S X=%Y_"00"+%M_"00"+%D Q ; YX D YMD S Y=X_% Q:Y="" G DD^%DT YMD D 7 S %=$P(%H,",",2) D S K %D,%M,%Y Q T F %=1:1 S Y=$E(X,%) Q:"+-"[Y G 1^%DT:$E("TODAY",%)'=Y S X=$E(X,%+1,99) G PM:Y="" I +X'=X D DMW S X=% G:'X 1^%DT PM S @("%H=$H"_Y_X) D TT G 1^%DT:%I(3)'?3N,D^%DT N F %=2:1 S Y=$E(X,%) Q:"+-"[Y G 1^%DT:$E("NOW",%)'=Y I Y="" S %H=$H D %H G RT S X=$E(X,%+1,99) I X?1.N1"H" S X=X*3600,%H=$H,@("X=$P(%H,"","",2)"_Y_X),%=$S(X<0:-1,1:0)+(X\86400),X=X#86400,%H=$P(%H,",")+%_","_X G RT D DMW G 1^%DT:'% S @("%H=$H"_Y_%),%H=%H_","_$P($H,",",2) D %H RT D TT S %=$P(%H,",",2) D S S %=X_$S(%:%,1:.24) I %DT'["S" S %=+$E(%,1,12) Q:'$D(%(0)) S Y=% G E^%DT PF S %H=$H D YMD S %(9)=X,X=%DT["F"*2-1 I @("%I(1)*100+%I(2)"_$E("> <",X+2)_"$E(%(9),4,7)") S %I(3)=%I(3)+X Q TT D 7 S %I(1)=%M,%I(2)=%D,%I(3)=%Y K %M,%D,%Y Q NOW S %H=$H,%H=$S($P(%H,",",2):%H,1:%H-1) D TT S %=$P(%H,",",2) D S S %=X_$S(%:%,1:.24) Q DMW S %=$S(X?1.N1"D":+X,X?1.N1"W":X*7,X?1.N1"M":X*30,+X=X:X,1:0) Q %H I '$P(%H,",",2) S %H=%H-1 Q I $P(%H,",",2)<60&(%DT'["S") S $P(%H,",",2)=60 Q COMMA ; S %D=X<0 S:%D X=-X S %=$S($D(X2):+X2,1:2),X=$J(X,1,%),%=$L(X)-3-$E(23456789,%),%L=$S($D(X3):X3,1:12) F %=%:-3 Q:$E(X,%)="" S X=$E(X,1,%)_","_$E(X,%+1,99) S:$D(X2) X=$E("$",X2["$")_X S X=$J($E("(",%D)_X_$E(" )",%D+1),%L) K %,%D,%L Q HELP S DDH=$S($D(DDH):DDH,1:0),A1="Examples of Valid Dates:" D % I %DT["M" D G 0 . S A1=" "_$S(%DT["I":1.1957,1:"JAN 1957 or JAN 57")_$S(%DT'["N":" or 0157",1:"") D % . S A1=" T (for this month)" D % . S A1=" T+3M (for 3 months in the future)" D % . S A1=" T-3M (for 3 months ago)" D % . S A1="Only month and year are accepted. You must omit the precise day." D % S A1=" "_$S(%DT["I":"20.1.1957",1:"JAN 20 1957 or 20 JAN 57")_" or "_$S(%DT["I":"20/1",1:"1/20")_"/57"_$S(%DT'["N":" or "_$S(%DT["I":200157,1:"012057"),1:"") D % S A1=" T (for TODAY), T+1 (for TOMORROW), T+2, T+7, etc." D % S A1=" T-1 (for YESTERDAY), T-3W (for 3 WEEKS AGO), etc." D % S A1="If the year is omitted, the computer " D D % . I %DT["P" S A1=A1_"assumes a date in the PAST." Q . I %DT["F" S A1=A1_"assumes a date in the FUTURE." Q . S A1=A1_"uses CURRENT YEAR. Two digit year" D % . S A1=" assumes no more than 20 years in the future, or 80 years in the past." . Q I %DT'["X" S A1="You may omit the precise day, as: "_$S(%DT["I":1,1:"JAN,")_" 1957" D % I %DT'["T",%DT'["R" G 0 S A1="If only the time is entered, the current date is assumed." D % S A1="Follow the date with a time, such as "_$S(%DT["I":"20.1",1:"JAN 20")_"@10, T@10AM, 10:30, etc." D % S A1="You may enter a time, such as NOON, MIDNIGHT or NOW." D % I %DT["S" S A1="Seconds may be entered as 10:30:30 or 103030AM." D % I %DT["R" S A1="Time is REQUIRED in this response." D % 0 Q:'$D(%DT(0)) S A1=" " D % S A1="Enter a date which is "_$S(%DT(0)["-":"less",1:"greater")_" than or equal to " D % S Y=$S(%DT(0)["-":$P(%DT(0),"-",2),1:%DT(0)) D DD^%DT:Y'["NOW" I '$D(DDS) W Y,"." K A1 Q S DDH(DDH,"T")=DDH(DDH,"T")_Y_"." K A1 Q ; % I '$D(DDS) W !," ",A1 Q S DDH=DDH+1,DDH(DDH,"T")=" "_A1 Q