1

double と時間形式 (HH:mm:ss) についての質問です。

今から5分前の時間間隔でセグメンテーションを行おうとしています。

これを行うには、次のような計算を実行します。

private string Get_now(int minus)
{
   DateTime n = DateTime.Now.AddMinutes( 0 - minus);

   double now = ((n.Hour > 12) ? n.Hour - 12 : n.Hour) * 10000
                        + ((n.Minute > 60) ? n.Minute - 60 : n.Minute) * 100
                                + ((n.Second > 60) ? n.Second - 60 : n.Second);

   string string_now = Convert.ToString(now);

   return string_now;
}

たとえば、現在の時間が 03:50:00 の場合、Get_now(0) を入力すると、「今」は 35000 になります。Get_now(5) を入れると、「今」は 345000 になります。

これは、「今」をテキストボックスに出力する方法です。

textBox1.Text = Get_now(0);
textBox2.Text = Get_now(5);
textBox3.Text = Get_now(10);
textBox4.Text = Get_now(15);
textBox5.Text = Get_now(20);

そして、これが勝利フォームでの私の結果です:

ここに画像の説明を入力

ご覧のとおり、Get_now の結果はすべて double 値として表示されます。

私が欲しいのは、時刻形式で 00:00:00 として表示することです

つまり、結果は次のように表示される必要があります。

42352 --> 04:23:52
41852 --> 04:18:52
41352 --> 04:08:52
40852 --> 04:08:52
40352 --> 04:03:52  

それ以外の場合は、5 分ごとに時間を差し引いて (時間間隔を固定して) 文字列形式で表示するより良い方法がある場合は、ここにコメントを残してください。

4

2 に答える 2

4

なぜ時間を2倍に変換するのですか? それは単純になるのでしょうか?

    private static string Get_now(int minus)
    {
        return DateTime.Now.AddMinutes(-minus)
            .ToString("HH:mm:ss");
    }
于 2013-03-22T07:43:41.043 に答える
2

このステートメントを使用して、メソッド内に変換doubleしますstringGet_now

string string_now = now.ToString("0#:##:##", CultureInfo.InvariantCulture);

09:21:24電話に戻りGet_now(15)ます

InvariantCultureオプションですが、文化固有の環境から保護する場合があります

于 2013-03-22T07:35:22.063 に答える