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

BSDMM.m

Go to the documentation of this file.
  1. BSDMM ; IHS/ANMC/LJF - IHS CALLS FROM SDMM ;
  1. ;;5.3;PIMS;;APR 26, 2002
  1. ;
  1. GETNXB ;EP; find next biweekly date
  1. S X1=SDDAT,X2=14 D C^%DTC S POP=0 D INACT^SDMM Q:POP
  1. S SDDAT=X G:$D(^HOLIDAY(SDDAT,0))&('SDSOH) GETNXB S Y=SDDAT_SDOT
  1. Q
  1. ;
  1. GETNXM ;EP; find next month date
  1. NEW DOW,DOM,NUM,FIRST,FDOW,X
  1. S DOW=$$DOW^XLFDT(SDDAT,1) ;day of week of starting date
  1. S DOM=$E(SDDAT,6,7) ;day of month of starting date
  1. S NUM=DOM\7+$S(DOM#7=0:0,1:1) ;number of dow in month (1st,2nd)
  1. ;
  1. S FIRST=$$FIRST(SDDAT) ;1st day of next month
  1. ;
  1. S FDOW=$$DOW^XLFDT(FIRST,1) ;dow of first day next month
  1. S X=$$FMADD^XLFDT(FIRST,(DOW-FDOW)) ;find 1st matching dow new month
  1. I NUM>1 S X=$$FMADD^XLFDT(X,(7*(NUM-1))) ;go to correct week
  1. I $E(X,4,5)'=$E(FIRST,4,5) S POP=1 Q ;quit if no fifth dow in month
  1. ;
  1. S POP=0 D INACT^SDMM Q:POP
  1. S SDDAT=X G:$D(^HOLIDAY(SDDAT,0))&('SDSOH) GETNXM
  1. S Y=SDDAT_SDOT
  1. Q
  1. ;
  1. FIRST(DATE) ; returns first day of next month
  1. NEW MON,YR
  1. S MON=$E(DATE,4,5)+1 ;get next month
  1. S YR=$E(DATE,1,3) S:MON=13 MON=1,YR=YR+1 ;check for January
  1. Q ((YR_"00")+MON)_"01"