| 00254 00/01/11 19:18 | (発言者削除) |
| 投稿者 : よこしま |
| 00255 00/01/11 19:22 | RE:00253 getdate で取得した日付の一週 |
| 投稿者 : よこしま | コメントを投稿する |
こんにちは, とほほさん. 以前作成したスクリプトからいかのものを発見しました のでご参考まで 使い方は call CalDate "000101", "1" message #return みたいな感じです. メッセージボックスに 991231 が表示されます ;ここから ;************ 日付の計算 ********* ; 渡された日数分さかのぼった日付を返す ; 閏年と2000年以降にも一応対応 CalDate: datetolinear(#1), ##target0 ##target = ##target0 - value(#2) #year = part(#1, 0, 2) datetolinear(#year + "0101"), ##gantan ##year = value(#year) CalDateSub: ##day = ##target - ##gantan ;##day=1/1から何日経過しているか switch ##year case 96, 92, 88, 84, 80, 0, 4, 8, 12 ##add = 1 case default ##add = 0 endswitch if(##day<0) ##year = ##year - 1 if(##year<0) ##year = ##year + 100 endif switch ##year case 96, 92, 88, 84, 80, 0, 4, 8, 12 ##backdays = 366 case default ##backdays = 365 endswitch ##gantan = ##gantan - ##backdays goto CalDateSub elseif(##day<31) #month = "01" elseif(##day<59 + ##add) #month = "02" elseif(##day<90 + ##add) #month = "03" elseif(##day<120 + ##add) #month = "04" elseif(##day<151 + ##add) #month = "05" elseif(##day<181 + ##add) #month = "06" elseif(##day<212 + ##add) #month = "07" elseif(##day<243 + ##add) #month = "08" elseif(##day<273 + ##add) #month = "09" elseif(##day<304 + ##add) #month = "10" elseif(##day<334 + ##add) #month = "11" else #month = "12" endif if(##year<10) #year == "0" + ##year else #year == ##year endif datetolinear(#year + #month + "01"), ##target0 ##day = ##target - ##target0 + 1 if(##day<10) #day = "0" + ##day else #day = ##day endif #target == #year + #month + #day return #target ;ここまで よこしま Send 00/01/11 |
| 新規に投稿する |