- 締切済み
cobolでn秒後の日時分秒を取得したいのですが、うるう年をロジックに
cobolでn秒後の日時分秒を取得したいのですが、うるう年をロジックに組み込まなきゃいけ なかったりして頭が混乱してしまってます・・。 oracleの関数を使えれば、出せると思ってるのですがcobolからoracleの関数の使い方がわかりません。そもそも使えるのでしょうか? "SYSDATE+n/86400"という関数を使えば答えはでると思っているのですが。 どなたかご教授ください。お願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- nazoq
- ベストアンサー率0% (0/0)
私は使用した事ないのですが、下記の様な組み込み関数があるようです。使用可能でしょうか。 CURRENT-DATE --->現在日付、時刻、時差 DATE-OF-INTEGER --->グレゴリオ通日→年月日 INTEGER-OF-DATE --->年月日→グレゴリオ通日 下記サイトが参考です。 http://go2vb.cocolog-nifty.com/blog/2007/04/post_e05d.html
- SaKaKashi
- ベストアンサー率24% (755/3136)
cで関数作れば簡単だと思うけど。 年月日時分秒をある日を起点の通算秒数値に変換して、 その数値に加算なり減算なりをして、通算秒から年月日時分秒に変換する。 cなら関数があるので結構簡単です。
- nda23
- ベストアンサー率54% (777/1415)
何というCOBOLでしょうか? それぞれにDBの操作方法が異なりますので、 ~COBOLとOracleで検索すると何か分かるかも 知れません。 COBOLの基本で考えるなら ACCEPT FROM DATE などを使って、計算で求めます。一般に次の規則が 成り立つようです。 (1)4で割り切れたら閏年である (2)100で割り切れたら閏年ではない (3)400で割り切れたら閏年である
補足
oracleを使えませんでした。。 年月日をパラメータで受け取って、n秒前の年月日を出したいのですが未だうまくいきません。n秒は最大で10年です。
- SaKaKashi
- ベストアンサー率24% (755/3136)
Oracleの関数を使うには実行環境にOracleデータベースが必要ですけど、データベースはありますか? COBOLのプログラムを実行する環境でOracleが使用可能なら、SQL文を実行して "SYSDATE+n/86400"で答えは求まりますけど。 SELECT SYSDATE+:N/86400 INTO :XXX FROM DUAL とか
補足
すいません、、、DB接続できないことに気がつきました。。。 MFCOBOLです。。。
補足
COBOLで作る必要があるんです。スイマセン・・・。