指定した日から 指定日数後の日付を割り出すモジュールを作ってみました。
#module
// うるう年算出
#defcfunc JudLeapYears_AD int y_
if (y_\4) : return 0
if ((y_\400)==0) : return 1
if ((y_\100)==0) : return 0
return 1
// 年と 月から 日数を割り出す
#defcfunc GetNumberDays int y_ , int m_
if (m_==4) or (m_==6) or (m_==9) or (m_==11) {
// 小月で有る場合
return 30
}else : if (m_==2) {
if JudLeapYears_AD(y_) {
return 29
}else{
return 28
}
}else{
// 大月で有る場合
return 31
}
// 指定した日付に 指定した日数を追加した値を返す。
#deffunc AddDay var ry_ , var rm_ , var rd_ , int y_ , int m_ , int d_ , int add_ , local a_
a_=add_
ry_ = y_
rm_ = m_
rd_ = d_+a_
*@
lim_ = GetNumberDays(ry_,rm_)
v = rd_ - lim_
if(v>0){
rm_ ++
rd_ -= lim_
v = rm_ - 12
if(v>0){
ry_ += rm_ / 12
rm_ = rm_ \ 12
}
}else{
return
}
goto*@b
return
#global
AddDay y,m,d,2013,8,22,7 // 一週間後の日付を割り出す
mes y
mes m
mes d