2016-03-02 22 views
0

我的DataGridView我在哪裏出的即將上映的電影如何從存儲在字符串中的日期中查找dayofweek?

enter image description here

現在,從這個我得給的折扣是在週末電影的所有細節。我是從datagridview的

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

越來越日期我現在已經轉換這個日期星期幾,所以我可以通過

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

我試圖通過

DateTime dateValue = new DateTime(date); 
Console.WriteLine(dateValue.ToString("ddd")); 
找到星期幾比每天dayof周

此代碼給我這個錯誤

的最佳重載方法匹配「System.DateTime.DateTime(長)」有一些無效參數

+0

什麼是'date'究竟價值? –

+0

日期值是我從datagridview中選擇的日期,即2016年3月2日 我想查找2016年3月2日的哪一天? –

+0

順便提一下,你的錯誤信息很奇怪。 'DateTime'結構沒有_even_有一個名爲'DateTime'的方法,它把'long'作爲參數。我強烈懷疑這個錯誤來自其他地方,但你並未向我們展示。 –

回答

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); 
+0

var dateValue = DateTime.ParseExact(date,「M/d/yyyy」,CultureInfo.InvariantCulture) 這是給我錯誤的「字符串未被識別爲有效的DateTime」,因爲我從datagridview得到的日期是3/2/2016上午12:00:00上午,即使datagridview顯示日期是3/2/2016沒有時間。字符串日期是否只有沒有時間的日期? –

+0

@NavazBaig如果是這樣,您只需將格式更改爲「M/d/yyyy hh:mm:ss tt」。更新了我的答案。看一看。 –

+0

它現在工作! Thankyou so much :) –

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

我不推薦這種方式,因爲您的代碼_might_可能會在2月3日之前解析此字符串,或者它可能無法解析它_at all_。 –

+1

最好使用'ParseExact'或(或'TryParseExact',如果格式可以更改)和_specific_ culture設置。 –

相關問題