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 (記載なし)
Copyright © 2013 Power Future Co., Ltd.