2009-12-03 42 views
0

使用C#檢查字符串是否爲有效年份的最佳方法是什麼?該值是否爲有效年份C#

我目前有一個包含{'All','2009','2008'}等值的下拉列表,我想知道選擇是日期還是'All'字段。

目前我正在檢查bool isYearValid = (Year.ToLower() == "all") ? false : true;

如何檢查值是否是一個有效的年份,這樣我就不必對「所有」這個硬編碼檢查?

回答

6

鑑於一年只需要一個有效的號碼,你可以只使用int32.TryParse,然後簡單地檢查根據您要在今年什麼範圍是在範圍內。

0

這是不是可以反正更好?

bool isYearValid = !string.Equals(Year, "all", StringComparison.OrdinalIgnoreCase); 
+0

鑑於這是一個硬編碼的'全部'值,他如何檢查案例可能不是很重要;) – Ant

+0

是的,非常真實。 –

1

您可以使用

DateTime DT 
datetime.tryparse(string.format("1/1/{0}",Year),DT) 
0

如何:

<asp:ListItem Value="1900" Text="All" /> 

這樣,你不必在驗證點手動檢查 「所有」。您仍然需要檢查1900年,當實際執行此操作時,但肯定有現在的方法可以避免一個特殊的場景,無論如何。

除此之外,DateTime.TryParse是查明字符串表示法是否爲有效日期的正確方法。

4

您可以嘗試解析年爲一個整數:

int iYear = 0; 

if (Int.TryParse(Year, out iYear)) 
{ 
    //You have a valid year inside iYear 
    //If you are not sure about the dropdown list values, 
    //you can of course do more checks for validity. For example: 
    //if iYear is in a proper range 
} 
0

好了,沒有一個人提到這個問題,但爲什麼不能爲符號爲「所有」的地方定義 和使用,在這兩個下拉初始化和比較?