• ベストアンサー

日数 時分秒の求め方

プログラムで、関数をつかわずに、 3589.28時間を、 日 月:時:秒 で表記したいのですが、どのように計算すればいいでしょうか? 四則演算は使えるとします。 変数の利用もOKです。 関数を使わないと考えると。。。できないです。。。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

切り捨ても出来ないと厳しいですが、ifで判断すれば可能ですね。 とりあえず、日数を求めるのは、C風に書くと、 x = 時間; y = x / 24; for(i=0; ;i++){  if(i+1>y) {   z = i;   break;  } } z に日数が求まります。 残り時間 = x - z*24; として後は同様に。 ifも使えないとすると無理。

Kuronari12
質問者

お礼

返答ありがとうございます。 最終的にこれかなと思って、再度、関数を見なおしたら、小数点以下切り捨ての関数のみ使えそうなのがありましたので、上記でなく、実現できました。 上記は、計算量が半端無く発生しそうなので、リソースの心配がありまして、最終手段となっておりました。 ですが、なんとかやり方はあると思えたので、安心できました。 大変にありがとうございました。

その他の回答 (3)

  • hashioogi
  • ベストアンサー率25% (102/404)
回答No.4

int変換もmod計算もできないそうですが、逆に何ができるのでしょうか? それによってやり方が見つかると思いますけど。

Kuronari12
質問者

お礼

返答ありがとうございます。 もう一度、最初から関数を探していたら、小数点以下切り捨ての関数のみあったので、無事に作成できました。 ありがとうございます。 (まあ、これ以外がまともにないというのも、使えないソフトだと思いますが。。。)

回答No.3

>3589.28時間 に固定されているのだから答も直値で書くだけですね。 いくつになるかは「さんすう」の問題だから紙にでも書いて計算すればよい。

Kuronari12
質問者

お礼

返答ありがとうございます。 秒単位で変動するものの合計値なので、紙で計算では、無理です。

  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.1

日 月:時:秒 ではなく 日 時:分:秒 だと解釈して回答。 int seconds = (int)(3589.28 * 3600); int minutes = seconds / 60; seconds = seconds - minutes * 60; int hours = minutes / 60; minutes = minutes - hours * 60; int days = hours / 24; hours = hours - days * 24; System.out.println(days + " " + hours + ":" + minutes + ":" + seconds);

Kuronari12
質問者

お礼

回答ありがとうございます。 ご指摘どおり、日 時:分:秒 ですね。 残念ながら、int変換も出来ないという状態なので、 苦しんでいます。 実は、あるソフトのプログラムできるところなのですが、int型にも変換できないし、modなんかもないのです。愕然としている次第です。 もし、上記の条件(要は、整数型に変換できない。できても、小数点以下が勝手に四捨五入されています。変数はVBで言う、Variant型みたいです。)で、可能でしょうか? 頭が悪くてすみません。 よろしくお願い致します。

関連するQ&A