source: FOIAVistA/tag/r/CAPACITY_MANAGEMENT_TOOLS-KMPD-KMPL/KMPDU.m@ 628

Last change on this file since 628 was 628, checked in by George Lilly, 14 years ago

initial load of FOIAVistA 6/30/08 version

File size: 3.1 KB
Line 
1KMPDU ;OAK/RAK - CM Tools Utility ;2/17/04 09:47
2 ;;2.0;CAPACITY MANAGEMENT TOOLS;**2**;Mar 22, 2002
3 ;
4GBLCHECK(GLOBAL) ;-- extrinsic function
5 ;-----------------------------------------------------------------------
6 ; GLOBAL.. Global name to be checked. Must be either:
7 ; ^XTMP
8 ; ^TMP
9 ; ^UTILITY
10 ;
11 ; RESUTL: 0 - Does not pass.
12 ; 1 - Passes.
13 ;-----------------------------------------------------------------------
14 Q:$G(GLOBAL)="" 0
15 N GBL,I,RESULT
16 S RESULT=0
17 S GBL=GLOBAL
18 ;-- remove '^'.
19 S GBL=$E(GBL,2,$L(GBL))
20 ;-- remove '('.
21 S GBL=$P(GBL,"(")
22 F I="XTMP","TMP","UTILITY" I GBL=I S RESULT=1 Q
23 Q RESULT
24 ;
25FMDTI(Y,X) ;-- date/time in internal fileMan format.
26 ;----------------------------------------------------------------------
27 ; X - User response ('T', '12/12/94', etc.)
28 ;
29 ; Return: Y(0)=InternalFilemanDate
30 ; Y(1)=ExternalFilemanDate
31 ;----------------------------------------------------------------------
32 K Y
33 I $G(X)']"" S Y(0)="^" Q
34 N %DT,DATETIME
35 S %DT="ST" D ^%DT
36 S DATETIME=$S(Y>0:Y,1:"^")
37 K Y
38 ;-- fm internal format.
39 S Y(0)=DATETIME
40 ;-- external format.
41 S Y(1)=$$FMTE^XLFDT(DATETIME)
42 Q
43 ;
44KILL(RESULT,VARIABLE) ;-- kill variables.
45 ;-----------------------------------------------------------------------
46 ; VARIABLE... local or global variable to be killed.
47 ;
48 ; This subroutine kills variables (local or global). It should be used
49 ; mostly to kill global variables that have been set when components
50 ; have been populated with long lists that were set into temporary
51 ; globals. If VARIABLE is a global variable, it must be either ^TMP or
52 ; ^UTILITY to be killed.
53 ;-----------------------------------------------------------------------
54 K RESULT S RESULT=""
55 I $G(VARIABLE)="" S RESULT="[No variable to kill]" Q
56 I $E(VARIABLE)="^" D Q:RESULT]""
57 .I '$$GBLCHECK(VARIABLE) D
58 ..S RESULT="[Can only kill globals ^XTMP, ^TMP or ^UTILITY]"
59 K @VARIABLE
60 S RESULT="<"_VARIABLE_" killed>"
61 Q
62 ;
63TIMEADD(KMPDTM,KMPDADD) ;-- extrinsic function - add time
64 ;----------------------------------------------------------------------
65 ; KMPDTM... Current time in dy hr:mn:sc format
66 ; KMPDTM... Time to add to current time in dy hr:mn:sc format
67 ;
68 ; RETURN: total in dy hr:mn:sc format
69 ;----------------------------------------------------------------------
70 Q:$G(KMPDTM)="" ""
71 Q:$G(KMPDADD)="" KMPDTM
72 N DY,HR,MN,SC
73 ; current time
74 S DY(1)=+$P(KMPDTM," ")
75 S HR(1)=+$P($P(KMPDTM," ",2),":")
76 S MN(1)=+$P($P(KMPDTM," ",2),":",2)
77 S SC(1)=+$P($P(KMPDTM," ",2),":",3)
78 ; time to be added
79 S DY(2)=+$P(KMPDADD," ")
80 S HR(2)=+$P($P(KMPDADD," ",2),":")
81 S MN(2)=+$P($P(KMPDADD," ",2),":",2)
82 S SC(2)=+$P($P(KMPDADD," ",2),":",3)
83 ; add seconds
84 S SC(3)=SC(1)+SC(2)
85 ; if greater than 59 seconds
86 I SC(3)>59 S MN(3)=SC(3)\60,SC(3)=SC(3)-60
87 ; add minutes
88 S MN(3)=$G(MN(3))+MN(1)+MN(2)
89 ; if greater than 59 minutes
90 I MN(3)>59 S HR(3)=MN(3)\60,MN(3)=MN(3)-60
91 ; add hours
92 S HR(3)=$G(HR(3))+HR(1)+HR(2)
93 ; if greater than 23 hours
94 I HR(3)>23 S DY(3)=HR(3)\24,HR(3)=HR(3)-24
95 ; days
96 S DY(3)=$G(DY(3))+DY(1)+DY(2)
97 ;
98 Q DY(3)_" "_HR(3)_":"_MN(3)_":"_SC(3)
Note: See TracBrowser for help on using the repository browser.