| 2009/10/14(Wed) 18:11:48 編集(投稿者)
渡邊さん検証不足ですいませんでした。 月の判定式を下記のように変更したらいかがでしょうか。 単純に月を引き算したら良かったのですが、ご指摘のような時 1月や2月と10月は引き算できないし月数で求めると日によって 変わるので最下行のように12を先に足して引いた方が良さそうです。
#計算(#代入(&実行リターン ,#num(#sstr([日時文字列],#文字位置([日時文字列],"年")+1 ,#文字位置([日時文字列],"月")-#文字位置([日時文字列],"年")-1))) ,#cond([入力日時値]="",30 ,#月([入力日時値])<>&実行リターン,30 ,&実行リターン=#月([判定日]),0 ,&実行リターン>#月([判定日]) .and (&実行リターン-#月([判定日]))<7 ,(&実行リターン-#月([判定日]))*5 ,&実行リターン>#月([判定日]) .and (&実行リターン-#月([判定日]))>6 ,#月数(#日時値生成(#年([判定日])-1,&実行リターン),[判定日])*5 ,&実行リターン<#月([判定日]) .and (#月([判定日])-&実行リターン)<7 ,(#月([判定日])-&実行リターン)*5 ,&実行リターン<#月([判定日]) .and (#月([判定日])-&実行リターン)>6 ,((&実行リターン+12)-#月([判定日]))*5))
以下の感じが日付に影響されないかもしれません。
#計算(#代入(&実行リターン ,#num(#sstr([日時文字列],#文字位置([日時文字列],"年")+1 ,#文字位置([日時文字列],"月")-#文字位置([日時文字列],"年")-1))) ,#cond([入力日時値]="",30 ,#月([入力日時値])<>&実行リターン,30 ,&実行リターン=#月([判定日]),0 ,1 ,#小(#abs(#月([判定日])-&実行リターン) ,#abs(#月([判定日])+12-&実行リターン) ,#abs(&実行リターン-#月([判定日])) ,#abs(&実行リターン+12-#月([判定日])))*5))
よく検証してください。
|