2012-07-20 240 views
0

我使用下面的代码来比较两个时间:比较系统日和日期时间

DateTime systemtime = DateTime.Now; 
DateTime timestart = Convert.ToDateTime(txtTimestart.Text); 
DateTime timeend = Convert.ToDateTime(txtTimeend.Text); 

if (systemtime < timestart || systemtime > timeend) 
{ 
    MessageBox.Show("not auth."); 
} 
else 
{ 
    MessageBox.Show("auth."); 
} 

但我也希望当天的比较。例如,如果今天是星期一或星期四,则用户被认证,否则不认证。我该怎么做?谢谢。

+1

关于有关比较您的问题'星期几'给一个字符串,你可以将你的字符串解析成'DayOfWeek',例如'(DayOfWeek)Enum.Parse(typeof(DayOfWeek),“Monday”)'或者比较为一个字符串:'systemtime.DayOfWeek.ToString()' – 2012-07-20 00:48:11

+0

我该怎么做呢?我的TimeStart,TimeEnd和Day都是String数据类型。 – 2012-07-20 01:06:52

+0

我如何得到当天的情况?如果有DateTime.Now,我该如何获得今天的DayOfWeek?我需要将它与文本框中的某个字符串进行比较。 – 2012-07-20 01:13:09

回答

1
DateTime systemtime = DateTime.Now; 
if(systemtime.DayOfWeek == DayOfWeek.Monday) 
{ 
... 
} 
+0

谢谢,但现在我将字符串转换为DayOfWeek? – 2012-07-20 00:37:02

+1

@CantHandleMeBabe DayOfWeek someDay; DayOfWeek.TryParse(“monday”,true,out someDay) – 2012-07-20 00:39:45

+0

@CantHandleMeBabe它只是一个枚举。你可以使用任何解析方式 - 比如上面或其他任何方法,如var yourDay = Enum.Parse(typeof(DayOfWeek),“monday”); etc等 – 2012-07-20 00:43:52

0

DateTime对象将有一个属性DayOfWeek。 你可以比较字符串。

+2

从技术上讲,它是一个枚举而不是一个字符串。 – 2012-07-20 00:25:20

+0

我如何得到当天的情况?如果有DateTime.Now,我该如何获得今天的DayOfWeek?我需要将它与文本框中的某个字符串进行比较。 – 2012-07-20 01:13:55

1

timestart.DayOfWeek会给你喜欢的值或DayOfWeek.ThursdayDayOfWeek.Friday

看到这里的文档和示例:http://msdn.microsoft.com/en-us/library/system.datetime.dayofweek.aspx

+0

谢谢,但如果它是字符串,我该如何比较呢? – 2012-07-20 00:33:56

+0

其他评论告诉你如何将'DayOfWeek'转换为'String'。如果你已经有一个字符串,比如'Friday',你也可以将它与'timestart.DayOfWeek.ToString()' – azhrei 2012-07-20 00:48:16

+0

进行比较。我该怎么做呢?我的TimeStart,TimeEnd和Day都是String数据类型。 – 2012-07-20 01:07:14

0

试试这个

var systemtime = DateTime.Now; 
var start = "Monday"; 
var finish = "Wednesday"; 
DayOfWeek startDay; 
if (!Enum.TryParse<DayOfWeek>(start ,out startDay)) 
{ 
    //handle parse error 
} 
DayOfWeek finishDay; 
if (!Enum.TryParse<DayOfWeek>(finish, out finishDay)) 
{ 
    //handle parse error 
} 

if (systemtime.DayOfWeek < startDay || systemtime.DayOfWeek > finishDay) 
{ 
    MessageBox.Show("not auth."); 
} 
else 
{ 
    MessageBox.Show("auth."); 
}