Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 时间跨度/时区之间的日期时间匹配_C#_Date_Datetime - Fatal编程技术网

C# 时间跨度/时区之间的日期时间匹配

C# 时间跨度/时区之间的日期时间匹配,c#,date,datetime,C#,Date,Datetime,我需要检查DateTime变量是否在两周时间之间匹配 类似于23.11.2016 14:08是或曾经是之间的 周一18:00和周一22:00 或 周一22:00和周二07:00 目前,我可以检查日期是否在正确的日期之间: DateTime dTime = DateTime.Parse(/*String from sql database*/); // German weekday abbreviations String[]

我需要检查DateTime变量是否在两周时间之间匹配

类似于23.11.2016 14:08是或曾经是之间的

  • 周一18:00和周一22:00
  • 周一22:00和周二07:00
目前,我可以检查日期是否在正确的日期之间:

DateTime dTime = DateTime.Parse(/*String from sql database*/);
                                  // German weekday abbreviations
String[] Days = new string[] { "Mo", "Di", "Mi", "Do", "Fr", "Sa", "So" };

string Day = dTime.ToString("ddd", new CultureInfo("de-DE"));
string DayFrom = "Di";
string DayTill = "Mi";

int DayposStop = Array.IndexOf(Days, Day);
int DayposFrom = Array.IndexOf(Days, DayFrom);
int DayposTill = Array.IndexOf(Days, DayTill);

if (((DayposFrom <= Daypos || Daypos <= DayposTill)
DateTime dTime=DateTime.Parse(/*来自sql数据库的字符串*/);
//德语工作日缩写
字符串[]天=新字符串[]{“Mo”、“Di”、“Mi”、“Do”、“Fr”、“Sa”、“So”};
string Day=dTime.ToString(“ddd”,新文化信息(“de”);
字符串DayFrom=“Di”;
字符串DayTill=“Mi”;
int daypostop=Array.IndexOf(天,天);
int DayposFrom=Array.IndexOf(Days,DayFrom);
int DayposTill=Array.IndexOf(Days,daytail);

如果(((DayposFrom我编辑所有更改答案,因为我不太理解你的问题

您可以执行以下操作:

TimeSpan timeFrom = new TimeSpan(15,40,00);
TimeSpan timeUntil = new TimeSpan(22,00,00);

if (yourDate.TimeOfDay > timeFrom && yourDate.TimeOfDay < timeUntil)
{
    return;
}
TimeSpan timeFrom=新的时间跨度(15,40,00);
TimeSpan timeUntil=新的TimeSpan(22,00,00);
如果(yourDate.TimeOfDay>timeFrom&&yourDate.TimeOfDay

为了检查一周中的哪一天,您可以查看Sefe之前的回答。

我编辑了所有内容以更改答案,因为我不太理解您的问题

您可以执行以下操作:

TimeSpan timeFrom = new TimeSpan(15,40,00);
TimeSpan timeUntil = new TimeSpan(22,00,00);

if (yourDate.TimeOfDay > timeFrom && yourDate.TimeOfDay < timeUntil)
{
    return;
}
TimeSpan timeFrom=新的时间跨度(15,40,00);
TimeSpan timeUntil=新的TimeSpan(22,00,00);
如果(yourDate.TimeOfDay>timeFrom&&yourDate.TimeOfDay

要查看一周中的哪一天,您可以使用Sefe之前回答的内容。

您可以使用
DateTime.DayOfWeek

DateTime dTime = DateTime.Parse(/*String from sql database*/);
DayOfWeek weekdayFrom = DayOfWeek.Tuesday;
DayOfWeek weekdayTo = DayOfWeek.Wednesday;

if ((dTime.DayOfWeek >= weekdayFrom) && (dTime.DayOfWeek <= weekdayTo))

同样,您可能需要使用
FirstDayOfWeek
进行偏移,您可以使用
DateTime.DayOfWeek

DateTime dTime = DateTime.Parse(/*String from sql database*/);
DayOfWeek weekdayFrom = DayOfWeek.Tuesday;
DayOfWeek weekdayTo = DayOfWeek.Wednesday;

if ((dTime.DayOfWeek >= weekdayFrom) && (dTime.DayOfWeek <= weekdayTo))

同样,你可能需要用
FirstDayOfWeek

抵消。在尝试和搜索了很多之后,我得出结论,我无法以我想要的特定方式解决我的问题(工作轮班和假期之间的时间段等),但我找到了一个第三方图书馆,它可以提供我可能需要的一切


经过多次尝试和搜索,我得出结论,我无法以我想要的特定方式解决我的问题(包括轮班和假期之间的时间段等),但我找到了一个第三方图书馆,它可以提供我可能需要的一切


('23.11.2016 18.00'<'23.11.2016 14:08'是的,类似的,但我没有日期,只是周一或周五的21号。Oktober左右
('23.11.2016 18.00'<'23.11.2016 14:08'是这样的,但我没有日期,只是周一或周五21号。Oktober或sowon对我不起作用,因为要检查的日期不是真正的日期,只是周一12:00到周一13:00,所以不是真正的日期。编辑,更改我的答案以适应你的问题对我不起作用,因为要检查的日期不是真正的日期,它只是每周星期一12:00到星期一13:00,所以不是真正的日期。编辑,更改我的答案以适合您的问题,这会将我的代码缩短到非常好的程度,但如果时间跨度在10:00到16:00之间,会如何?这会将我的代码缩短到非常好的程度,但如果时间跨度在10:00到16:00之间,会怎么样?