質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

2回答

1849閲覧

J2000.0からの経過秒数から年月日時分秒を計算するアルゴリズムを教えて欲しい

TRON1216.

総合スコア37

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2018/11/15 18:11

元期J2000.0(2000年1月1日正午)からの経過秒数を入力すると年月日時分秒を計算するコードを書きたいです。参考サイトでもヒントでも良いので教えていただけると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

1970年 1月 1日 木曜日 09時00分00秒 JST からの経過秒数で時刻を表現する UNIX time ってのがすでにあるので、それにオフセット足す感じでどうでしょうか。
C++ だとこんな感じで。

#include <iostream> using namespace std; void asdf (time_t x) { time_t foo = 946728000l + x; tm *bar = gmtime(&foo); char buf[80]; strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S GMT", bar); cout << buf << endl; } int main () { asdf(100l); // 2000-01-01 12:01:40 GMT asdf(1000l); // 2000-01-01 12:16:40 GMT asdf(10000l); // 2000-01-01 14:46:40 GMT asdf(100000l); // 2000-01-02 15:46:40 GMT }

投稿2018/11/15 19:02

編集2018/11/15 19:29
set0gut1

総合スコア2413

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TRON1216.

2018/11/16 08:40

丁寧な回答ありがとうございます。無事うまくいきました!
set0gut1

2018/11/16 16:40

良かったです!
TRON1216.

2018/11/22 15:09

すいません、今更なのですが、お聞きしたいことがあります。time_t foo = 946728000l + x;のlとはどういう役割を持つのでしょうか? 自分はlを書き忘れてそのままなのですが、うまくいっているようです。
set0gut1

2018/11/22 17:10

100はint型ですが、100lはlong型になります。僕の環境だとtime_tとはlongのことだったので、念のためbyte長を合わせました。
guest

0

以下、言語がPythonだと勘違いしての回答です。失礼しました…


アルゴリズムというか、datetime — 基本的な日付型および時間型を使えばできます。

まずdatetime オブジェクトにて起点となる日時のオブジェクトを作成します。
次にtimedelta オブジェクトで任意の秒数の差分を表すオブジェクトを作成します。
最後に、日時に差分を足した結果が求める日時になります。

投稿2018/11/15 19:20

編集2018/11/15 19:33
can110

総合スコア38266

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TRON1216.

2018/11/15 19:28

パイソンではなく、Cの参考サイトはありませんか?
can110

2018/11/15 19:31 編集

あ、失礼!完全に言語タグ見落としてました… C/C++なので、set0gut1さんの手法でよいかと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問