c# - 如何以小时、分钟和秒为单位找到时差 C# windows form app
问题描述
我正在尝试为我的学校创建一个程序,我希望它说明当前期间结束还有多长时间。我已经找到了如何找到当前的时间段,但不确定如何获得基本的小时、分钟和秒。
在我过去的尝试中,我得到了一个像 14.234534 这样的数字,我需要一个数字,这样我就可以将它放入基本的小时、分钟和秒中。
我已经有了这个,它给了我 14.25341
var now = DateTime.Now;
double diffHours = 24 - (now - now.Date).TotalHours + 8;
string final = diffHours.ToString();
label11.Text = final;
谢谢!
解决方案
我无法从您的描述中真正看出“当前时期结束”的时间是什么。如果您可以将其表示为 a DateTime
,那么您可以通过从另一个中TimeSpan
减去 a来获得 a 。例如,这里是当地时间下午 6:30 之后,所以如果我可以像这样计算到午夜的时间:DateTime
DateTime
var tonightAtMidnight = DateTime.Today + TimeSpan.FromDays(1);
TimeSpan timeLeftUntilMidnight = tonightAtMidnight - DateTime.Now;
Console.WriteLine(timeLeftUntilMidnight.ToString("g"));
我在我的控制台上得到了这个:
5:30:23.1215299
如果你查找TimeSpan.ToString(string)
,你可以看到如何格式化你想要的。
更新
考虑一些看起来像这样的代码:
private static readonly DateTime[] periodEndings = new DateTime[] {
DateTime.Today + new TimeSpan (8, 40, 0),
DateTime.Today + new TimeSpan (9, 20, 0),
DateTime.Today + new TimeSpan (10, 0, 0),
DateTime.Today + new TimeSpan (10, 40, 0),
DateTime.Today + new TimeSpan (11, 20, 0),
DateTime.Today + new TimeSpan (12, 0, 0),
DateTime.Today + new TimeSpan (12, 40, 0),
DateTime.Today + new TimeSpan (13, 20, 0),
DateTime.Today + new TimeSpan (14, 0, 0),
DateTime.Today + new TimeSpan (14, 40, 0),
DateTime.Today + new TimeSpan (15, 20, 0),
DateTime.Today + new TimeSpan (16, 0, 0),
};
static string CalculateTimeToNextPeriod(DateTime now) {
if (now < periodEndings[0]) {
return "School hasn't started";
};
for (var i = 1; i < periodEndings.Length; ++i) {
if (now > periodEndings[i - 1] && now < periodEndings[i]) {
var timeLeft = periodEndings[i] - now;
return timeLeft.ToString(@"hh\:mm\:ss");
}
}
//otherwise
return "School's over for the day";
}
静态数组设置时间段,小函数返回一个字符串,其中包含从某个时间到该时间之后结束的时间段结束所剩的小时/分钟/秒。我真的不知道您要做什么,但这应该会给您一些想法。
推荐阅读
- javascript - 量角器 - MacO 上的 Microsoft Edge(无法自动化)
- angular - 第一次以角度与httpClient进行数据绑定很慢
- java - 春天:java.lang.NoSuchFieldError:IMPORT_BEAN_NAME_GENERATOR
- reactjs - 在heroku上部署react.js项目时出现应用程序错误
- c++ - std::getline 不在 while 循环中重新请求用户输入
- visual-studio - 如何更改 Visual Studio 文件选项卡视图
- python - Python:访问 JSON 元素
- r - 使用 lintr::expect_lint_free() 进行测试失败并使用 devtools::check() 但可以使用 devtools::test()
- javascript - 在 React Native 中的一个异步函数中,有什么办法可以防止重复点击时性能损失?
- r - 按组计算汇总统计数据(平均值、中位数等)