如何从字符串中存储的日期中找到dayofweek?

时间:2016-03-02 11:15:11

标签: c# datetime datagridview

我有DataGridView,我正在显示即将上映的电影的所有细节

enter image description here

现在,我必须给周末的电影打折。我从datagridview

获取日期
string date = dataGridView1.CurrentRow.Cells["Date"].Value.ToString();

现在我必须将此日期转换为dayofweek,以便我可以按日期比较

date == (DayOfWeek.Saturday || DayOfWeek.Sunday)

我试图通过

找到dayofweek
DateTime dateValue = new DateTime(date);
Console.WriteLine(dateValue.ToString("ddd")); 

这段代码给了我这个错误

  

最佳重载方法匹配' System.DateTime.DateTime(long)'有一些无效的论点

2 个答案:

答案 0 :(得分:3)

由于它是string,您可以将其解析为DateTime并检查它是DayOfWeek property之类的;

var dateValue = DateTime.ParseExact(date, "M/d/yyyy", CultureInfo.InvariantCulture);

if(dateValue.DayOfWeek == DayOfWeek.Saturday || dateValue.DayOfWeek == DayOfWeek.Sunday)

老实说,我不明白为什么你使用ddd specifier,因为它代表缩写名称,因为它使用你的CurrentCulture设置,它可能甚至生成他们的英文名字

在您的comment之后,看起来您的字符串也有时间部分,您只需更改格式部分;

var dateValue = DateTime.ParseExact(date, "M/d/yyyy hh:mm:ss tt", 
                                          CultureInfo.InvariantCulture);

答案 1 :(得分:0)

var date = "3/2/2016";
var dayOfWeek = DateTime.Parse(date).DayOfWeek;