2017-02-01 116 views
1

美好的一天大家。我是C#的新手,但我似乎無法理解DateTime如何工作。 我想要做的就是檢查如果一個(給予)=今天和時間是晚上7點我想返回true。這是做到這一點的正確方法嗎?C#查詢日期和時間

記下ActionDate是由用戶輸入的字段。

DateTime dateA = Convert.ToDateTime(ActionDate); 

int a = dateA.Year; 
int b = dateA.Month; 
int c = dateA.Day; 
int d = timeA.Hour; 
int e = timeA.Minute; 

var newDate = new DateTime(a, b, c, d, e, 0); 

DateTime end = Convert.ToDateTime(newDate); 
DateTime start = Convert.ToDateTime(A); 

TimeSpan span = end.Subtract(start); 
Decimal minutes = Convert.ToDecimal(span.TotalMinutes); 

if 
{ 
return true; 
} else 
{ 
return false; 
} 

在此先感謝您。

+1

爲什麼要將DateTime轉換爲DateTime? –

+0

假設'ActionDate'已經是'DateTime'這就是你需要的全部內容:'返回ActionDate.Date == DateTime.Today && ActionDate.Hour == 19;'。如果你想包括分鐘添加'&& ActionDate.Minutes == 0' –

+0

我不確定所有先生。只是把這個stackoverflow的答案,所以即時通訊也試了出來。 –

回答

0

你讓你的代碼有點複雜。首先,將該用戶輸入轉換爲日期,並將其與當前日期和時間進行比較。

DateTime dateA = Convert.ToDateTime(ActionDate); 
if (dateA.Date == DateTime.Today && dateA.Hour == 19) 
{ 
    //it is current date and hour is 7pm 
} 

可選地,檢查是否用戶的開關輸入是好的,這樣的:

DateTime dateA; 
if (!DateTime.TryParse(ActionDate, out dateA)) 
{ 
    //alert user that he's entered wrong date 
} 

編輯: 作爲添Schmelter注意,代碼有點更具可讀性使用DateTime.Today代替DateTime.Now.Date

+0

代替'DateTime.Now.Date',你可以使用'DateTime.Today' –

+0

如果我想讓它成爲晚上7點,我只把它變爲19?或1900? –

+1

19.我編輯了代碼。如果你想檢查分鐘數,你可以這樣做:'if(dateA.Date == DateTime.Now.Date && dateA.Hour == 19 && dateA.Minute == 0)' – Nino

1

的方式以檢查是否今天是給定日期,並且在下午7點是使用DateTime.Now

請注意19是晚上7點,7是早上7點,Hour屬性使用24小時制。

bool IsCurrentDayAnd7(DateTime dt) => dt.Date == DateTime.Now.Date && dt.Hour == 19; 

由於@TimSchmelter評論,你可以使用DateTime.Today

bool IsCurrentDayAnd7(DateTime dt) => dt.Date == DateTime.Today && dt.Hour == 19; 
+0

代替'DateTime.Now.Date',您可以使用'DateTime.Today' –

+0

@TimSchmelter感謝您使代碼更加整潔 – TheLethalCoder

0

可以使用Date屬性與當前日期比較日期。

if (newDate.Date == DateTime.Now.Date && newDate.Hour == 19) 
{ 
return true; 
} 
+0

您可以使用'DateTime.Today'代替'DateTime.Now.Date' –

+0

@TimSchmelter任何性能影響或兩者之間的顯着差異? – Mairaj

+0

當然,'Now'和'Date'需要做計算並創建一個新的'DateTime'實例。但除此之外,它更具可讀性,因爲你想與'Today'比較' –