PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
17064 02/02/28 11:26:37 RE(9):日付取得について(サンプルプログラム) By afro12
17062 02/02/27 19:44:02 RE(8):日付取得について(サンプルプログラム) By M.M
17059 02/02/26 11:43:23 RE(7):日付取得について By みく
17058 02/02/26 11:19:50 RE(6):日付取得について By afro12
17057 02/02/26 10:55:54 RE(5):日付取得について By afro12
17056 02/02/26 10:46:17 RE(4):日付取得について By YAMASHITA, Satoru
17055 02/02/26 10:42:33 RE(3):日付取得について By YAMASHITA, Satoru
17054 02/02/26 09:47:41 RE(2):日付取得について By みく
17053 02/02/26 09:15:12 RE(1):日付取得について By あっき
17050 02/02/25 12:51:42 日付取得について By afro12

カテゴリ:スクリプトの記述
日付:2002年02月27日 19:44 発信者:M.M
題名:RE(8):日付取得について(サンプルプログラム)

afro12さん、こんにちは。

>日付取得についてなのですが、たとえば本日2002/02/25からちょうど3ヶ月前の
>2001/11/25 の値を取得する場合、なにか良い方法はないものでしょうか?

とりあえずOracleの関数で取得する方法で成功したようですが、
PBのスクリプトでも実現できましたので、スクリプトのサンプルをUpします。
ご参考まで。



//関数 wf_subtractMonths(pdt_date, pi_months)
//
// ・第一パラメータで指定した日付を、第二パラメータで指定した月数だけ
//  前に戻します。
//
//  pdt_date(Date型):変更前の日付
//  pi_months(Int型):戻す月数を指定

//初期設定
int iDay, iDay2, iWork
date dtWork1, dtWork2

//指定した月数分だけ、日付を戻す
dtWork1 = pdt_date
iDay = day(dtWork1)
for iWork=1 to pi_Months

//変数 dtWork1 と同じ月の初日を求める
dtWork2 = date(year(dtWork1), month(dtWork1), 1)

//変数 dtWork2 を一日前に戻し、前月末の日付を求める
dtWork2 = relativeDate(dtWork2, -1)

//変数 dtWork1 に一月前の日付をセットする
iDay2 = iDay
do while true
dtWork1 = date(year(dtWork2), month(dtWork2), iDay2)
if string(dtWork1, \"yyyy-mm-dd\")<>\"1900-01-01\" then exit
iDay2 --
loop

next

return dtWork1



付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows 2000
DBMS Oracle SQL*Net 8
Browser InternetExplorer5.X

Server SoftWare

OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.