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

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

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

FORTRAN(フォートラン)は科学時術計算に向いた手続き型プログラミング言語です。 並列計算の最適化が行いやすい特性上、数値予報および気候モデルなどの大規模な計算を行う分野のスーパーコンピュータで使われています。

Q&A

解決済

1回答

1485閲覧

Fortran90で時間の差分を求めたい

akidon0000

総合スコア8

FORTRAN

FORTRAN(フォートラン)は科学時術計算に向いた手続き型プログラミング言語です。 並列計算の最適化が行いやすい特性上、数値予報および気候モデルなどの大規模な計算を行う分野のスーパーコンピュータで使われています。

0グッド

0クリップ

投稿2020/04/17 07:08

現在Fortran90?で
x 時 y 分 z 秒から k 時 m 分 n 秒まで何秒あるかを計算する。

という問題を解いているのですが、
もっとスマートな方法があるのではと思い質問させていただきました。
入力もhh:mm:ssで入力できたらいいなと思っています。

program hello implicit none integer hour_x,hour_k,min_y,min_m,sec_z,sec_n print *, "時、分、秒を順番に入力してください" read(*,*) hour_x,min_y,sec_z print *, "差分を求めたい 時、分、秒を順番に入力してください" read(*,*) hour_k,min_m,sec_n !実行部分 stop end program hello

よろしくお願いします。

あとVSCodeでFortranを使用しているのですが
ModernFortranはFortran90ですか?Fortran95ですか?
拡張子がf.90なのでFortran90だと思うんですが。。
ややこしくてよくわかりません。。。

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

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

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

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

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

dodox86

2020/04/17 07:49

「スマートな方法」というと、今あるコードをよりスマートにする方法を求められている気がしますが、ご提示のコードを読むと「何秒あるか」を計算する部分がなく、よりスマートにしようがない気がしますがどうなのでしょう。
akidon0000

2020/04/18 08:31

返信遅れてすみません。 解決しました。 ありがとうございます!
guest

回答1

0

自己解決

program hello implicit none integer hour1,hour2,min1,min2,sec1,sec2 print *, "時、分、秒を順番に入力してください" read(*,*) hour1,min1,sec1 print *, "差分を求めたい 時、分、秒を順番に入力してください" read(*,*) hour2,min2,sec2 sec1 = (hour1 * 3600) + (min1 * 60) + sec1 !時間,分を全て秒に変換 sec2 = (hour2 * 3600) + (min2 * 60) + sec2 sec1 = abs(sec1 - sec2) !絶対値 hour1 = int(sec1 / 3600) !秒から時間へ sec1 = modulo(sec1,3600) !時間を引いた秒 min1 = int(sec1 / 60) sec1 = modulo(sec1,60) print *, "差分は",hour1,"時間",min1,"分",sec1,"秒" stop end program hello

投稿2020/04/18 08:31

akidon0000

総合スコア8

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問