プロが教える店舗&オフィスのセキュリティ対策術

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秒としたいのですが、
どなたか教えてくださいお願いいたします。

A 回答 (3件)

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") + "秒";
}
    • good
    • 0

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分にしたいです。

補足日時:2010/04/12 16:08
    • good
    • 0

一例ですが…



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")

この回答への補足

凄く参考になりました。
すみませんが、さらに分が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") + "秒";
}
これでやってみましたが、どうも"時間"は出来ても"分"がおかしくなりました。
教えて戴けませんか?お願いいたします。

補足日時:2010/04/12 16:14
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!