c# - 将秒转换为分钟、小时和天

标签 c# winforms

<分区>

我们最近在我的类里面讨论了“if 语句等...”,我在回答这个问题时遇到了麻烦。 (为我糟糕的英语道歉)

问题是:

  • 创建一个允许用户输入秒数的应用程序,其工作方式如下:
  • 一分钟有 60 秒。如果用户输入的秒数 大于或等于 60,程序应显示分钟数 在那么多秒内。
  • 一个小时有 3,600 秒。如果输入的秒数 用户大于或等于3600,程序应显示数量 几秒钟内的几个小时。
  • 一天有 86,400 秒。如果用户输入的秒数 大于或等于 86,400,程序应显示的数量 天在那么多秒。

这是我错误百出的回答:

    private void button1_Click(object sender, EventArgs e)
    {       
            //Declaring Variables
            int totalSeconds;
            int hours;
            int minutes;
            int minutesRemainder;
            int hoursRemainderMinutes;
            int hoursRemainderSeconds;

            // Parsing and calculations

            totalSeconds = int.Parse(textBox1.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 >= 84600)
            {
                MessageBox.Show(hours.ToString() + " hours, " + hoursRemainderMinutes.ToString() + " minutes, " + hoursRemainderSeconds.ToString() + " seconds");


        }
    }
}

运行时,我的程序不计算任何东西。我究竟做错了什么?

最佳答案

你应该使用 TimeSpan.FromSeconds method .

它将为您提供 TimeSpan 结构实例,您可以在其中访问:

  • 总天数
  • 总小时数
  • 总分钟数

属性。

编辑

他们在评论中说您想在不使用任何库的情况下实现这一目标。 那么方法将是(根据您的任务):

int totalSeconds = ....;///
int totalMinutes = totalSeconds / 60;
int totalHours = totalMinutes / 60;
int totalDays = totalHours / 24;

if (totalDays > 0){
 //show days
} else if (totalHours > 0){
  //show hours
} else if (totalMinutes > 0){
  //show minutes
} else {
  //show seconds
}

关于c# - 将秒转换为分钟、小时和天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39391985/

相关文章:

c# - 从表单中提取填充方法

vb.net - ReportViewer.LocalReport.Render ("PDF")

vb.net - 将 textchange 事件设置为仅在用户而非程序实际输入文本时触发

c# - 将字节连接成整数或短保留符号

c# - 根据另一个元素值选择 XML 元素

c# - 计算子网内的所有地址...对于 IPv6

c# - 关于我的第一个 3 层 Winform 应用程序中 BLL 和 DAL 的几个问题

c# - C# 中的事件处理程序应该引发异常吗?

c# - 无法通过 CRM 2011 中的 C# 以编程方式创建组织

c# - RDLC 表 - 垂直和水平合并单元格