多个条件

时间:2015-09-26 17:09:19

标签: c# while-loop

我想在控制台输出一个定时器,从00h00m00s到23h59m59s。 我的代码只输出到00h00m59s。 必须是在一段时间后的条件,但我认为这是正确的。 谁知道如何解决这个问题?

static void Main(string[] args)
    {
        int uur = 0;
        int min = 0;
        int sec = 0;

        while (uur != 23 && min!=60 && sec!=60)
        {
            if (sec == 60)
            {
                min++;
                sec = 0;
            }
            if (min == 60)
            {
                uur++;
                min = 0;
            }

            string strSec = String.Format("{0:00}", sec);
            string strMin = String.Format("{0:00}", min);
            string strUur = String.Format("{0:00}", uur);

            Console.WriteLine(strUur + "h" + strMin + "m" + strSec + "s");
            sec++;
        }
        Console.ReadLine();
    }

2 个答案:

答案 0 :(得分:2)

使用以下条件:

while (uur != 23 || min != 59 || sec != 60)

您可能还想尝试这种更简单的方法:

int total_second_in_day = 24*60*60;

for (int second_in_day = 0; second_in_day < total_second_in_day; second_in_day++)
{
    int uur = second_in_day / 3600;
    int min = (second_in_day % 3600) / 60;
    int sec = (second_in_day % 3600) % 60;

    string strSec = String.Format("{0:00}", sec);
    string strMin = String.Format("{0:00}", min);
    string strUur = String.Format("{0:00}", uur);

    Console.WriteLine(strUur + "h" + strMin + "m" + strSec + "s");
}

Console.ReadLine();

答案 1 :(得分:2)

虽然您的问题基本上是关于理解while条件,但这是您可以一直实现打印的方式:

using System;

public class Program
{
    public static void Main()
    {
        var time = new TimeSpan(0,0,0,0);
        var oneSec = new TimeSpan(0,0,0,1);
        var wakeywakey = new TimeSpan(0,23,59,59);

        while (time <= wakeywakey)
        {
            Console.WriteLine(time);
            time += oneSec;
        }
    }
}