- ベストアンサー
C# 分秒表示ついて
C# 分秒表示ついて double a, b, c; a = double.Parse(textBox1.Text); b = double.Parse(textBox2.Text); c = a * b/60; label3.Text = c.ToString("0.00"); この通りだと1.50になりますので1分30秒としたいのですが、 どなたか教えてくださいお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
一例ですが… double a, b; int c, d; a = double.Parse(textBox1.Text); b = double.Parse(textBox2.Text); c = (int)(a * b/60); d = (int)(a * b%60); label3.Text = c.ToString("0") + ":" + d.ToString("00")
その他の回答 (2)
- magicalpass
- ベストアンサー率58% (378/648)
1時間は60分×60秒だから同じことです。 double a, b; int c, d, h; a = double.Parse(textBox1.Text); b = double.Parse(textBox2.Text); c = (int)(a * b/60); d = (int)(a * b%60); h = c / 60; c %= 60; if (h > 0) { label3.Text = h.ToString("0") + "時間" + c.ToString("00") + "分" + d.ToString("00") + "秒"; } else { label3.Text = c.ToString("00") + "分" + d.ToString("00") + "秒"; }
- Yune-Kichi
- ベストアンサー率74% (465/626)
aが分,bが秒とします。 時刻ではなく時間をあらわすようなので,System.TimeSpanを使います。 ・TimeSpan構造体のコンストラクタを使用 label3.Text = (new TimeSpan(0, (int)a, (int)b)).ToString("mm分ss秒"); ・TimeSpanを「分」で構築 label3.Text = TimeSpan.FromMinutes(a + b / 60.0).ToString("mm分ss秒"); ・TimeSpanを「秒」で構築 label3.Text = TimeSpan.FromSeconds(a * 60.0 + b).ToString("mm分ss秒"); ・TimeSpanを「分」と「秒」で構築して足す label3.Text = (TimeSpan.FromMinutes(a) + TimeSpan.FromSeconds(b)).ToString("mm分ss秒"); どれでもお好きなものをどうぞ。
補足
この計算では違うような気がしています。 又、c#ではエラーが出ます。 200X60=1200 1200/60=20分にしたいです。
補足
凄く参考になりました。 すみませんが、さらに分が60分超えたら時間を追加したいのですが、どうしたらいいでしょうか? こちらのソース double a, b; int c, d, c1; a = double.Parse(textBox1.Text); b = double.Parse(textBox2.Text); c = (int)(a * b / 60); d = (int)(a * b % 60); if (c > 60) { int ee; ee = (int)((c / 10)); if (ee > 60) { ee = (int)((c / 1000)); c = (int)(c % 60 / 60); label3.Text = ee.ToString("0") + "時間" + c.ToString("0") + "分" + d.ToString("00") + "秒"; } else { label3.Text = ee.ToString("0") + "分" + d.ToString("00") + "秒"; } } else { label3.Text = c.ToString("0") + "分" + d.ToString("00") + "秒"; } これでやってみましたが、どうも"時間"は出来ても"分"がおかしくなりました。 教えて戴けませんか?お願いいたします。