Index: vhLib/DataTypes.mac.rou =================================================================== diff -u -r161 -r1196 --- vhLib/DataTypes.mac.rou (.../DataTypes.mac.rou) (revision 161) +++ vhLib/DataTypes.mac.rou (.../DataTypes.mac.rou) (revision 1196) @@ -71,7 +71,7 @@ New Z Set Z=Val If $E(Val,1,2)="00" Set (%EXT,%INT)=$TR(Z,"-,;:.","/ ") Set %TC=1 Quit - If $E(Z,1,2)="03",$H<58074 Set Z=$E(Z,3,99) + If $E(Z,1,2)="03",##class(TECH.Context).Instance().GeefDateTimeAPI().CurrentHorolog()<58074 Set Z=$E(Z,3,99) If $E(Z,1)'="0" Do FTEL("1;3; \4;5; \6;7;") Set %TC=1 Quit If $E(Z,1,2)="02" Do FTEL("1;2;/\3;5; \6;7; \8;9;") Set %TC=1 Quit Else Do FTEL("1;3;/\4;5; \6;7; \8;9;") Set %TC=1 Quit @@ -123,7 +123,7 @@ If $L(M)'=2!($E(Y,1,10)#97-M'=0&($E(Y,1,10)#97-M'=-97)) Set %TC=0 Quit Set (%INT,%EXT)=$E(Y,1,3)_"-"_$E(Y,4,10)_"-"_$E(Y,11,12) Set %TC=1 Quit - ; Berekenen tijd (extern naar $H formaat) + ; Berekenen tijd (extern naar horolog formaat) INTTIME(%TS) New I,%TN,%ER Set %TS=$TR(%TS,".",":") @@ -136,11 +136,11 @@ .If $ZV'["MSM" Do INT^%TI Else Set %ER=1 Quit $S($D(%ER):"",%TN=-1:"",1:%TN) - ; Berekenen tijd ($H naar extern formaat) + ; Berekenen tijd (horolog naar extern formaat) EXTTIME(%TN,Typ,Taal) New I,%TS,TypSec,TypNum,Types Set:$G(Typ)="" Typ="TK" Set:$G(Taal)="" Taal="N" - Set:'$D(%TN) %TN=$H + Set:'$D(%TN) %TN=##class(TECH.Context).Instance().GeefDateTimeAPI().CurrentHorolog() Set TypSec=$E(Typ,3),TypNum=$E(Typ,4),Typ=$E(Typ,1,2) If Typ="TK" Do .If TypSec="N",TypNum="S" Set TypSec="S",TypNum="N" @@ -163,7 +163,7 @@ If ("\"_Types_"\")'[("\"_Typ_"\") Quit "" Set %TS="" Set %TN=$TR(%TN,"n","N") - If %TN="N" Set %TN=$H + If %TN="N" Set %TN=##class(TECH.Context).Instance().GeefDateTimeAPI().CurrentHorolog() If %TN["," Set %TN=$P(%TN,",",2) If %TN,%TN'<0,%TN'>86399 Do .If $ZV["MSM" Do @($S(Typ="TP":"100",1:"")_"^%TO") Quit @@ -187,7 +187,7 @@ Set %INT=$$INTTIME(Val) If %INT Set %EXT=$$EXTTIME(%INT),%TC=1 Quit - ; Berekenen datum (extern naar $H formaat) + ; Berekenen datum (extern naar horolog formaat) INTDATE(%DS,Typ,Taal) New I,R,%DN,Types Set Typ=$G(Typ) Set:$G(Taal)="" Taal="N" @@ -216,10 +216,10 @@ If '(%DS=0!(%DS?1"N")!(%DS?1"N+".N)!(%DS?1"N-".N)!(%DS?1"+".N)!(%DS?1"-".N)) Goto @("I"_Typ) If %DS["N" Set %DS=$P(%DS,"N",2) If "0+-"[%DS Set %DS="+0" ; min of plus X -MPD If "\DK\DL\"[("\"_$E(Typ,1,2)_"\") Xecute "Set %DN=$H"_%DS Quit %DN -MPW If "\DW\"[("\"_$E(Typ,1,2)_"\") Quit $$CALCDATE($H,"W","MD",%DS) -MPM If "\DM\"[("\"_$E(Typ,1,2)_"\") Quit $$CALCDATE($H,"M","MD",%DS) -MPJ Quit $$CALCDATE($H,"J","MD",%DS) +MPD If "\DK\DL\"[("\"_$E(Typ,1,2)_"\") Xecute "Set %DN=##class(TECH.Context).Instance().GeefDateTimeAPI().CurrentHorolog()"_%DS Quit %DN +MPW If "\DW\"[("\"_$E(Typ,1,2)_"\") Quit $$CALCDATE(##class(TECH.Context).Instance().GeefDateTimeAPI().CurrentHorolog(),"W","MD",%DS) +MPM If "\DM\"[("\"_$E(Typ,1,2)_"\") Quit $$CALCDATE(##class(TECH.Context).Instance().GeefDateTimeAPI().CurrentHorolog(),"M","MD",%DS) +MPJ Quit $$CALCDATE(##class(TECH.Context).Instance().GeefDateTimeAPI().CurrentHorolog(),"J","MD",%DS) IDVS Set %DS=$TR(%DS,"/","\"),%DS=$P(%DS,"\",3)_$TR($J($P(%DS,"\"),2,0)," ",0)_$TR($J($P(%DS,"\",2),2,0)," ",0) ; mm/dd/jj IDSN2 ; jjmmdd IDSN Set %DS=$TR($J(%DS,6)," ",0) ; jjjjmmdd @@ -231,7 +231,7 @@ IDKP ; dd of dd.mm of dd.mm.jj IDL Set R=$TR(%DS,".- \","////") ; dd of dd-mmm of dd-mmm-jj If $L($P(R,"/",2)),'$P(R,"/",2) Set R=$$UPCASE^vhRtn1(R) - Set %DS=$$EDATE($H) Set:$L($P(R,"/")) $P(%DS,"/")=$P(R,"/") + Set %DS=$$EDATE(##class(TECH.Context).Instance().GeefDateTimeAPI().CurrentHorolog()) Set:$L($P(R,"/")) $P(%DS,"/")=$P(R,"/") Set:$L($P(R,"/",2)) $P(%DS,"/",2)=$P(R,"/",2) Set:$L($P(R,"/",3)) $P(%DS,"/",3)=$P(R,"/",3) If '$P(%DS,"/",2) Set $P(%DS,"/",2)=$F($T(@("T"_(2+$L($P(%DS,"/",2))))),";"_$J($P(%DS,"/",2),3)_";")-5/4 If $D(Typ),'$P(%DS,"/",2) Quit "" @@ -240,7 +240,7 @@ IDM Set R=$TR(%DS,".- ","///") ; mm of mmm of jj-mm of jj-mmm of jjjj-mm of jjjj-mmm If $L($P(R,"/",2)) Set R=$P(R,"/",2)_"/"_$P(R,"/") If $L($P(R,"/")),'$P(R,"/") Set R=$$UPCASE^vhRtn1(R) - Set %DS=$$EDATE($H),$P(%DS,"/")=15 + Set %DS=$$EDATE(##class(TECH.Context).Instance().GeefDateTimeAPI().CurrentHorolog()),$P(%DS,"/")=15 Set:$L($P(R,"/")) $P(%DS,"/",2)=$P(R,"/") Set:$L($P(R,"/",2)) $P(%DS,"/",3)=$P(R,"/",2) If '$P(%DS,"/",2) Set $P(%DS,"/",2)=$F($T(@("T"_(2+$L($P(%DS,"/",2))))),";"_$J($P(%DS,"/",2),3)_";")-5/4 IDM1 If $D(Typ),'$P(%DS,"/",2) Quit "" @@ -251,7 +251,7 @@ IDW Set R=$TR(%DS,".- ","///") ; ww of jj/ww of jjjj/ww If $P(R,"/")?4N Set $P(R,"/")=$E($P(R,"/"),3,4) If $P(R,"/",2) Set R=$P(R,"/",2)_"/"_$P(R,"/") - Set %DS=$P($$EDATE($H),"/",2,3) + Set %DS=$P($$EDATE(##class(TECH.Context).Instance().GeefDateTimeAPI().CurrentHorolog()),"/",2,3) Set:$L($P(R,"/")) $P(%DS,"/")=$P(R,"/") Set:$L($P(R,"/",2)) $P(%DS,"/",2)=$P(R,"/",2) IDW1 If +$P(%DS,"/")>+$$MAXWEEK($P(%DS,"/",2)) Quit "" If %DS?.N1"/".N Quit $$INTWEEK($P(%DS,"/",2),$P(%DS,"/")) @@ -260,25 +260,25 @@ If %DS?.N1"/".N1"/".N Quit $$IDATE(%DS) IJ4 If %DS?4N Goto IJ Quit "" - ; Berekening datum (dd/mm/jj naar $H) + ; Berekening datum (dd/mm/jj naar horolog) IDATE(%DS) New %DN,%ER Set %DS=$P(%DS,"/",2)_"/"_$P(%DS,"/")_"/"_$P(%DS,"/",3) If $P(%DS,"/",3)<100 Set $P(%DS,"/",3)=$S($P(%DS,"/",3)<50:2000,1:1900)+$P(%DS,"/",3) If $ZV["MSM" Do ^%DI If $D(%ER) Quit "" If $ZV'["MSM" Do INT^%DI If %DN=-1 Quit "" Quit %DN - ; Berekenen datum ($H naar extern formaat) + ; Berekenen datum (horolog naar extern formaat) ; Indien $D(lbTijdVenster) - ; -Is een $LB(DagenVoor,DagenNa,TranslateChar) t.o.v. $h waarbinnen de datum nomaal zal weergegeven worden + ; -Is een $LB(DagenVoor,DagenNa,TranslateChar) t.o.v. horolog waarbinnen de datum nomaal zal weergegeven worden ; DagenVoor -> default 60 ; DagenNa -> default 300 ; TranslateChar -> default "?" ; -Buiten dit venster: $TR(%DS,"-./\",TranslateChar) EXTDATE(%DN,Typ,Taal,lbTijdVenster) New I,R,Types Set:$G(Typ)="" Typ="DK" Set:$G(Taal)="" Taal="N" - Set:'$D(%DN) %DN=$H + Set:'$D(%DN) %DN=##class(TECH.Context).Instance().GeefDateTimeAPI().CurrentHorolog() Set %DN=+%DN If '%DN Quit "" Set Types="DS\DS2\DSN\DSN2\DVS\DVS4\DK\DK4\DKN\DKN4\DKP\DKD\DL\DL4\DM\DMC\DM4\DW\DW4\BJ\J\J4\DC\DCK\W\MN\MC\MCL\DWN\DMN\DJN" If Typ'="?",$D(lbTijdVenster) New %DS Do Quit %DS @@ -288,9 +288,9 @@ . Set:'DagenNa DagenNa=300 . Set:TranslateChar="" TranslateChar="?" . Set %DS=$$EXTDATE(%DN,Typ,Taal) - . If %DN<$H,($H-%DN)$H,(%DN-$H)##class(TECH.Context).Instance().GeefDateTimeAPI().CurrentHorolog(),(%DN-##class(TECH.Context).Instance().GeefDateTimeAPI().CurrentHorolog())50:19,1:20)_$E(%DJ+100,2,3) @@ -407,7 +407,7 @@ .If $L(D1) Set D1=$$INTDATE(D1,Type) .If $L(D2) Set D2=$$INTDATE(D2,Type) Quit D2-D1 - ; Berekenen $H voor begin, midden, einde, eerste of laatste arbeidsdag van jaar, maand of week + ; Berekenen horolog voor begin, midden, einde, eerste of laatste arbeidsdag van jaar, maand of week ; Typ : A = Arbeidsdag, W = Week, M = Maand, J = Jaar ; FD = eerste dag ; MD = middelste dag @@ -416,7 +416,7 @@ ; LA = laatste arbeidsdag CALCDATE(Val,Typ,P1,P2) New R - If $G(Val)="" Set Val=$H + If $G(Val)="" Set Val=##class(TECH.Context).Instance().GeefDateTimeAPI().CurrentHorolog() Goto:Typ="AW" CAW Goto:Typ="A" CA If '$D(P1) Set P1="MD" @@ -434,7 +434,7 @@ Set EndDatum=$$CALCDATE(BeginDatum,"W",Aantal) Set Datum=BeginDatum-1 Set Cnt=0 - For Set Datum=$O(^KBA("VP",Datum)) Quit:Datum="" Quit:Datum>EndDatum Set Cnt=Cnt+1 + For Set Datum=$O(^KBA("VP",Datum)) w !,$zr Quit:Datum="" Quit:Datum>EndDatum Set Cnt=Cnt+1 ; In KBA("VP",...) zitten alleen de weekdagen niet de weekends, daarom /5 ipv /7 ;w !,Cnt," ",$zd(EndDatum,11)," ",$zd(EndDatum,8)," " Set EndDatum=$$CALCDATE(EndDatum,"A",$S($J(Cnt/5,0):Cnt,1:"+0")) @@ -477,7 +477,7 @@ CM1 Set R=$$INTDATE(Val,"DK") If R="" Set $P(Val,".")=1,R=$$CALCDATE($$INTDATE(Val,"DK"),"M","LD") Quit R CW Xecute "Set Val=Val+(7*+"_P2_")" ; week - If P1="" Quit Val-2+($H+3#7) + If P1="" Quit Val-2+(##class(TECH.Context).Instance().GeefDateTimeAPI().CurrentHorolog()+3#7) If "\FD\MD\LD\"[("\"_P1_"\") Xecute "Set Val=Val+$S(Val#7<4:-(Val#7),1:7-(Val#7))"_$P("-3\-1\+3","\",$F("FML",$E(P1))-1) Quit Val @@ -528,7 +528,7 @@ Quit Diff ROUNDTIME(Val,P1,P2) - ;Val = Tweede deel van $H ($p($H,",",2) + ;Val = Tweede deel van horolog ;P1 ="H","M" of "S" optioneel aangevuld met + of -; ;Indien P1 ook een "-" bevat dan wordt er steeds naar beneden afgerond ! ;Indien P2 ook een "+" bevat dan wordt er steeds naar boven afgerond ! @@ -545,7 +545,7 @@ CALCTIME(Val,P1,P2) New R,Sec - If $G(Val)="" Set Val=$H + If $G(Val)="" Set Val=##class(TECH.Context).Instance().GeefDateTimeAPI().CurrentHorolog() If '$D(P1) Set P1="S" If '$D(P2),"\D\H\M\S\\"[("\"_P1_"\") Set P2=0 If '$D(P2) Set P2="" @@ -558,7 +558,7 @@ Quit Val FMTDT(%DT,Typ,Taal) New R - Set %DT=$G(%DT,$H),Typ=$G(Typ),Taal=$G(Taal) + Set %DT=$G(%DT,##class(TECH.Context).Instance().GeefDateTimeAPI().CurrentHorolog()),Typ=$G(Typ),Taal=$G(Taal) Set R=$$EXTDATE(%DT,Typ,Taal) If $P(%DT,",",2) Set:$L(R) R=R_" " Set R=R_$$EXTTIME(%DT) Quit R