//--------------------------------------------------------------------------- // DATETODAY : 指定された日付(YYYY/MM/DD)の曜日を調べて // 曜日(に対応した数字)を返すルーチン // [Usage] : // call DATETODAY $$date; // ##day = ##return; // 日〜土 の順に 0〜6 までの数値を返す // // $$date : "YYYY/MM/DD" 形式の日付(ex. "1997/12/06") // ##day : 日〜土 に対応した 0〜6 までの数値 // //--------------------------------------------------------------------------- // サンプル: // call DATETODAY "1969/05/07"; // $$day = midstr("日月火水木金土",##return*2,2); // message "1969 年 5 月 7 日は " + $$day + "曜日 でした。"; // endmacro; //--------------------------------------------------------------------------- // DATETODAY: if( !#DATETODAY_DEFINED ){ #MON[0] = 0; ##a = 1; while( ##a < 12 ){ if( ##a==2 ) ##i = 28; else if( ##a==4 || ##a==6 || ##a==9 || ##a==11 ) ##i = 30; else ##i = 31; #MON[##a] = #MON[##a-1] + ##i; ##a = ##a + 1; } #DATETODAY_DEFINED = 1; } ##y = val( leftstr($$1,4) ); ##m = val( midstr($$1,5,2) ); ##date = val( rightstr($$1,2) ) + #MON[##m-1] + (##y-1)*365 + (##y-1)/4 - (##y-1)/100 + (##y-1)/400; if( (!(##y%4)) && ( ##y%100 || (!(##y%400)) ) && ##m > 2 ) ##date = ##date + 1; return ##date%7; //---------------------------------------------------------------------------