繁体   English   中英

C#:几分钟到几分钟到几小时的转换?

[英]C# : Seconds to Minutes to Hours conversion?

好的,首先,我很确定我不会期望使用TimeSpan进行此项任务; 而是一个公式系列,当用户在文本框中输入秒数时,会显示消息框中的秒,分和小时。

这就是我被困的地方。 我们应该用示例检查我们的答案:7565秒是2小时6分5秒。 但是,我的代码最终将其计算为2小时,6分钟和6秒。 当初始数字为7560秒时,它也会保留该答案。 我很混乱!! 这是一个条件场景,其中消息框仅显示用户输入60秒以下的秒数,如果用户输入60到3600秒则仅显示几分钟+秒,如果输入超过3600秒则显示小时+分钟+秒。 这是我到目前为止所做的,我很感激任何有关为什么我的计算关闭的见解:)

谢谢你的回答! 但7565并不是一个常数; 用户可以输入任何秒数,但我的教授使用7565作为示例来检查我们是否在正确的轨道上。

private void calculateButton1_Click(object sender, EventArgs e)
    {
        int totalSeconds, hours, minutes, minutesRemainder, hoursRemainderMinutes, hoursRemainderSeconds;
        totalSeconds = int.Parse(secondsTextBox1.Text);
        minutes = totalSeconds / 60;
        minutesRemainder = totalSeconds % 60;
        hours = minutes / 60;
        hoursRemainderMinutes = minutes % 60;
        hoursRemainderSeconds = hoursRemainderMinutes % 60;

        if (totalSeconds < 60)
        {
            MessageBox.Show(totalSeconds.ToString());
        }

        else if (totalSeconds < 3600)
        {

            MessageBox.Show(minutes.ToString() + " minutes, " + minutesRemainder.ToString() + " seconds");
        }

        else if (totalSeconds>3600)
        {
            MessageBox.Show(hours.ToString() + " hours, " + hoursRemainderMinutes.ToString() + " minutes, " + hoursRemainderSeconds.ToString() + " seconds");
        }

    }

尝试使用模块化算术

int totalSeconds = 7565;

int hours = totalSeconds / 3600;
int minutes = (totalSeconds % 3600) / 60;
int seconds = (totalSeconds % 60);

...

if (hours > 0)
  MessageBox.Show(String.Format("{0} hours, {1} minutes, {2} seconds", hours, minutes, seconds));
else if (minutes > 0)
  MessageBox.Show(String.Format("{0} minutes, {1} seconds", minutes, seconds));
else
  MessageBox.Show(String.Format("{0} seconds", seconds));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM