Tips

日付から週の最初と最後の日を計算する

日付2009/09/11
ID75889 (英語原文参照)
バージョン11.4
プラットフォームMac & Win

時折、特定の日付からその週に関する情報を計算する必要が生じるかもしれません。たとえば、日付より、その週の最初(ここでは日曜日)と最後(土曜日)の日付は、次のようなメソッドで計算することができます。

  `...................................................................
  ` Project Method: Util_Calculate_Week
  ` Description: return first and last day of week based on a date
  ` Parameters: $1 - Date - date to calculate week start and end for
  ` Returns: vThisWeek1_p - Pointer to Date - First Day of the Week
  ` vThisWeek2_p - Pointer to Date - Last Day of the Week
  `...................................................................

C_DATE($Date_d;$Date1_d;$Date2_d)
C_POINTER(vThisWeek1_d;vThisWeek2_d)
C_INTEGER($DayNumber_l)

$Date1_d:=!00/00/00!
$Date2_d:=!00/00/00!
$Date_d:=$1
$DayNumber_l:=Day number($1)

Case of 
  : ($DayNumber_l=1)
    $Date1_d:=$Date_d
    $Date2_d:=$Date_d+6
  : ($DayNumber_l=2)
    $Date1_d:=$Date_d-1
    $Date2_d:=$Date_d+5
  : ($DayNumber_l=3)
    $Date1_d:=$Date_d-2
    $Date2_d:=$Date_d+4
  : ($DayNumber_l=4)
    $Date1_d:=$Date_d-3
    $Date2_d:=$Date_d+3
  : ($DayNumber_l=5)
    $Date1_d:=$Date_d-4
    $Date2_d:=$Date_d+2
  : ($DayNumber_l=6)
    $Date1_d:=$Date_d-5
    $Date2_d:=$Date_d+1
  : ($DayNumber_l=7)
    $Date1_d:=$Date_d-6
    $Date2_d:=$Date_d
End case 

vThisWeek1_d:=$Date1_d
vThisWeek2_d:=$Date2_d