2016-11-08 30 views
0
DayOfWeek today = DateTime.Today.DayOfWeek; 
if (today == DayOfWeek.Sunday || today == DayOfWeek.Saturday) 
{ 
    ClientScript.RegisterStartupScript(GetType(), "alert", "alert('" weekend"');", true); 
} 
else 
{ 
    ClientScript.RegisterStartupScript(GetType(), "alert", "alert('" weekday"');", true); 
} 

从线以上,我能够找到,如果今天是周末或工作日C#确认日为周末或工作日

现在我想从用户输入 我想这个日期,但失败了,

我的文字输入格式为:2016年10月4日

string dateInput = dateTextbox.Text; 
DayOfWeek today = DateTime.dateInput.DayOfWeek; 
+0

怎么是'dateTextbox.Text;'日期样子? –

+1

'dateInput'是一个字符串,您需要将其转换为'DateTime'对象。在StackOverflow上有几十个类似的问题*如何将一个字符串转换为C#中的日期时间* – user3185569

+3

对,所以你真正*问的是“我怎样才能把一个字符串转换成'DateTime'? - 因为你已经有了其他的代码。 –

回答

2

使用DateTime.ParseExact解析您的stringDateTime

string dateInput = dateTextbox.Text; //"2016-10-04" 
DateTime dtResult = DateTime.ParseExact(dateInput, "yyyy-MM-dd", CultureInfo.InvariantCulture); 
DayOfWeek today = dtResult.DayOfWeek; 
+0

,您好如何检查输入是周日还是周末? – KyLim

+0

正如你所说'如果(今天== DayOfWeek.Sunday ||今天== DayOfWeek.Saturday)' – fubo

+0

@KyLim我不知道你是否有24小时制或12小时制。为24使用'HH',为12'hh' – fubo

2

海事组织,你应该使用一些日期时间的控制,而不是一个文本框的输入日期时间。那么您需要首先将TextBoxText转换为DateTime对象。

DateTime dt = DateTime.ParseExact(dateTextbox.Text, 
            "YYYY-MM-DD", 
            CultureInfo.InvariantCulture); 

仅供参考,有很多方法将字符串转换为DateTime(谷歌将有所帮助)。所有的优点和缺点。使用哪种最适合你。

+0

(today == DayOfWeek.Sunday || today == DayOfWeek.Saturday) can not compare against dayofweek and datetime – KyLim

+1

if(dt.DayOfWeek == DayOfWeek.Sunday || dt.DayOfWeek == DayOfWeek.Saturday) –

+0

@KyLim:所以你需要使用'DayOfWeek'属性,一旦你把它转换成'DateTime'。你清楚地知道'DayOfWeek'属性,因为你在问题中使用它。软件工程就是把一个“大”问题分解成许多微小的步骤。 –