我想知道当天的指定时间是否过去了.我真的不喜欢我的方式:
private static readonly TimeSpan _whenTimeIsOver = new TimeSpan(16,25,00);
internal static bool IsTimeOver()
{
return DateTime.Now.TimeOfDay.Subtract(_whenTimeIsOver ).Ticks > 0;
}
Run Code Online (Sandbox Code Playgroud)
你好吗?
TimeOnly是 .Net 6 和 .Net 一起引入的新类型之一DateOnly。我理解对该类型的巨大需求,DateOnly因为在很多情况下您希望存储没有相关时间的日期,但没有数据类型这样做。
但对于时间来说,它TimeSpan已经存在并且能够代表时间。与exceptTimespan非常相似,似乎遗漏了一些属性。TimeOnlyTimeOnly
除了节省一点内存之外,TimeOnly使用而不是有什么好处吗?TimeSpan
目前,我正在开发一个项目来管理服务器等数据库上的维护窗口.基本上,我只需要精确到一小时,但允许将它们设置为允许或禁止每天一周中的.
我对如何做到这一点有一些想法,但由于我自己工作,我不想在没有一些反馈的情况下做任何事情.
为了形象化,它就像流动的"图形"
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
-------------------------------------------
5AM |allow|allow|allow|deny |deny |allow|allow|
-------------------------------------------
6AM |allow|deny |deny |deny |deny |deny |allow|
-------------------------------------------
7AM |allow|deny |deny |deny |deny |deny |allow|
-------------------------------------------
8AM |allow|deny |deny |deny |deny |deny |allow|
-------------------------------------------
9AM |allow|deny |deny |deny |deny |deny |allow|
-------------------------------------------
... etc...
Run Code Online (Sandbox Code Playgroud)
有没有一种标准的方式来做这个或资源,可能会给我一些想法......
[更新]
值得一提的是,即使不太可能,也可以设置为"允许,拒绝,允许,拒绝......等等".跨度不能保证是一整天中唯一的一个.
这也不是唯一的时间表,会有数百台设备各自有自己的时间表,所以它会变得毛茸茸......哈哈?
Rob问每周是否需要跟踪 - 事实并非如此.这是适用于整年的通用计划(定期维护)
您可能已经注意到某些Web应用程序(例如,GMail的某些部分)以比DD/MM/YYYY更人性化的格式显示日期.
例如,如果我打开23日的邮件(在撰写本文时恰好是3天前,我会得到以下内容:
12月23日(3天前)
我想在我自己的Web应用程序中实现类似的逻辑.
例如,在处理.NET TimeSpan对象时,我想将其转换为如下文本:
2个月
3天
是否有一个.NET库能够做到这一点?
如果不是,我可能会建立一些基本的和开源的东西.
我在这里做了一个基本的开始:
public static class TimeSpanHelpers
{
public static string ToHumanReadableString(
this TimeSpan timeSpan)
{
if (timeSpan.TotalDays > 30)
return (timeSpan.TotalDays / 30) + " month(s)";
if (timeSpan.TotalDays > 7)
return (timeSpan.TotalDays / 7) + " week(s)";
return (timeSpan.TotalDays) + " day(s)";
}
}
Run Code Online (Sandbox Code Playgroud) 我试图在两个时间段之间循环通过WEEK的每一天
DateTime start = new DateTime(2010, 1, 1);
DateTime end = new DateTime(2011, 12, 12);
Run Code Online (Sandbox Code Playgroud)
我已设法使用以下代码获取这些日期之间的天数
TimeSpan range = (end - start);
Run Code Online (Sandbox Code Playgroud)
结果是710.
我现在希望每个月能够获得本周的活动,
例如
1月1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 171 18 19 20...
与匹配
MTWTFSSMTWTFSSM
我知道c#有一个来自DateTime类DayOfWeek的属性,它获取了一周中的一天我的问题是构建一个循环来执行上述操作?
任何人?
我试图将TimeSpan格式化为字符串.然后我从MSDN到期以生成我的自定义字符串格式.但它没有言语.它返回"FormatException".
为什么?我不明白......
var ts = new TimeSpan(0, 3, 25, 0);
var myString = ts.ToString("[d'.']hh':'mm");
Run Code Online (Sandbox Code Playgroud) 我有值40880.051388并将其存储为双,如果我打开Excel并粘贴到单元格并将以下自定义格式" m/d/yyyy h:mm"应用于该单元格,我得到"12/3/2011 1:14"
如何在C#中进行解析/转换?我不知道某个检查点的值是毫秒,如纪元时间,还是该值是以某种特定的准备格式,但是excel如何得出这个特定值?可以在C#中完成吗?
我尝试过在Visual Studio中使用TimeSpan,DateTime和其他类似的东西,但我没有到达任何地方.
给定一个日期范围列表,我想得到一个连续日期范围列表.
我不太确定我正在寻找的术语,但我已经把一个骨架放在一起:
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
namespace ContiguousTimeSpans
{
class Program
{
static void Main(string[] args)
{
List<DateRange> ranges = new List<DateRange>();
ranges.Add(new DateRange(DateTime.Parse("01/12/2015 07:00:00"), DateTime.Parse("01/12/2015 10:00:00")));
ranges.Add(new DateRange(DateTime.Parse("01/12/2015 06:00:00"), DateTime.Parse("01/12/2015 09:00:00")));
ranges.Add(new DateRange(DateTime.Parse("01/12/2015 05:00:00"), DateTime.Parse("01/12/2015 08:00:00")));
ranges.Add(new DateRange(DateTime.Parse("01/12/2015 18:00:00"), DateTime.Parse("01/12/2015 21:00:00")));
ranges.Add(new DateRange(DateTime.Parse("01/12/2015 12:00:00"), DateTime.Parse("01/12/2015 14:00:00")));
ranges.Add(new DateRange(DateTime.Parse("01/12/2015 20:00:00"), DateTime.Parse("01/12/2015 22:00:00")));
ranges.Add(new DateRange(DateTime.Parse("01/12/2015 11:00:00"), DateTime.Parse("01/12/2015 23:00:00")));
List<DateRange> contiguousBlocks = GetContiguousTimespans(ranges);
Debug.Assert(contiguousBlocks.Count == 2);
Debug.Assert(contiguousBlocks[0].Start.Hour == 5);
Debug.Assert(contiguousBlocks[0].End.Hour == 10);
Debug.Assert(contiguousBlocks[1].Start.Hour == 11);
Debug.Assert(contiguousBlocks[1].End.Hour …Run Code Online (Sandbox Code Playgroud) 我正在使用Angular + Typescript构建一个Web应用程序.我有ASP.NET Web API.其中一个端点返回带有timespan属性的模型.我使用字符串类型来显示它但现在我需要使用TimeSpan值在画布上绘制对象,我找不到任何有用的信息.
字符串值类似于:"00:01:05"
我需要知道TotalSeconds例如.
我需要以格式转换秒数3d, 02:05:45.使用以下功能,我可以将其转换为3.02:05:45.我不知道如何将其转换为我想要的格式.请帮忙.
private string ConvertSecondsToDate(string seconds)
{
TimeSpan t = TimeSpan.FromSeconds(Convert.ToDouble(seconds));
if (t.Days > 0)
return t.ToString(@"d\.hh\:mm\:ss");
return t.ToString(@"hh\:mm\:ss");
}
Run Code Online (Sandbox Code Playgroud)
如果我尝试做这样的事情,t.ToString(@"%d , hh\:mm\:ss")我会收到错误,
输入字符串的格式不正确.