• 締切済み

cobolでn秒後の日時分秒を取得したいのですが、うるう年をロジックに

cobolでn秒後の日時分秒を取得したいのですが、うるう年をロジックに組み込まなきゃいけ なかったりして頭が混乱してしまってます・・。 oracleの関数を使えれば、出せると思ってるのですがcobolからoracleの関数の使い方がわかりません。そもそも使えるのでしょうか? "SYSDATE+n/86400"という関数を使えば答えはでると思っているのですが。 どなたかご教授ください。お願いします。

みんなの回答

  • nazoq
  • ベストアンサー率0% (0/0)
回答No.4

私は使用した事ないのですが、下記の様な組み込み関数があるようです。使用可能でしょうか。 CURRENT-DATE --->現在日付、時刻、時差 DATE-OF-INTEGER --->グレゴリオ通日→年月日 INTEGER-OF-DATE --->年月日→グレゴリオ通日 下記サイトが参考です。 http://go2vb.cocolog-nifty.com/blog/2007/04/post_e05d.html

  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.3

cで関数作れば簡単だと思うけど。 年月日時分秒をある日を起点の通算秒数値に変換して、 その数値に加算なり減算なりをして、通算秒から年月日時分秒に変換する。 cなら関数があるので結構簡単です。

参考URL:
http://www1.cts.ne.jp/~clab/Contents/Timeindex.html
somehow123
質問者

補足

COBOLで作る必要があるんです。スイマセン・・・。

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.2

何というCOBOLでしょうか? それぞれにDBの操作方法が異なりますので、 ~COBOLとOracleで検索すると何か分かるかも 知れません。 COBOLの基本で考えるなら ACCEPT FROM DATE などを使って、計算で求めます。一般に次の規則が 成り立つようです。 (1)4で割り切れたら閏年である (2)100で割り切れたら閏年ではない (3)400で割り切れたら閏年である

somehow123
質問者

補足

oracleを使えませんでした。。 年月日をパラメータで受け取って、n秒前の年月日を出したいのですが未だうまくいきません。n秒は最大で10年です。

  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.1

Oracleの関数を使うには実行環境にOracleデータベースが必要ですけど、データベースはありますか? COBOLのプログラムを実行する環境でOracleが使用可能なら、SQL文を実行して "SYSDATE+n/86400"で答えは求まりますけど。 SELECT SYSDATE+:N/86400 INTO :XXX FROM DUAL とか

somehow123
質問者

補足

すいません、、、DB接続できないことに気がつきました。。。 MFCOBOLです。。。

関連するQ&A