【问题标题】:C# int for hours and minutes, custom AddMinute MethodC# int 表示小时和分钟,自定义 AddMinute 方法
【发布时间】:2021-03-17 11:49:28
【问题描述】:

我有一个自定义时间模型,其中一个整数表示小时,一个整数表示分、秒。 该类有一个 AddMinute(int value) 方法,我想要它,例如....

CustomTime myTime = new CustomTime();
myTime.AddMinute(75);

...分钟添加为小时 += 1 和分钟 += 15。

我自己有解决方案,但目前正在寻找最短的解决方案 有谁知道好的吗?

【问题讨论】:

  • Hours += value / 60; Minutes += value % 60;?
  • @RenéVogt:还不够。之后需要while (Minutes >= 60) {Hours+=1;Minutes-=60}
  • 嗯是的,但以下内容将在 00:65 ``` CustomTime myTime = new CustomTime(); myTime.AddMinute(30); myTime.AddMinute(35); ```
  • @RenéVogt:因为如果 Minute 之前已经是 59,添加一些东西需要另一个结转。
  • @PMF 对,错过了

标签: c# time model integer


【解决方案1】:

对于您当前的班级,我认为最好的答案是 René Vogt 在 cmets 中提到的:

Hours += (value + Minutes) / 60;
Minutes = (value + Minutes) % 60;

但是我没有看到重新发明轮子的意义,您可以使用 TimeSpan 结构而不是您自己的 CustomTime 类,它已经具有所有这些选项,并且不仅添加秒、分钟、...您可以添加/减去另一个时间等等:

TimeSpan Struct (Microsoft Docs)

【讨论】:

  • ty,这就是我需要的!
  • 关于 However I don't see a point in reinventing the wheel 我向您展示的 nodatime.org 重新发明了轮子 :)
  • 嗯,我和你的想法一样,只是如果结果分钟数变为 60+,那么我们必须做一个 -60 并在小时数上再加 1,(value + Minutes) / 60(value + Minutes) % 60 这样做
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-28
  • 2017-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-04
  • 2015-08-28
相关资源
最近更新 更多