2011-05-23 102 views
0

我正在做的工作包括找出一個人的星座,所以我把一個dateTimePicker選擇出生日期,但現在我不知道我將如何從dateTimePicker獲取數據來檢查哪個星座...C#中,如何在if語句上使用dateTimePicker的值?

舉個例子,從1月1日到2月14日,你是這個星座,從這個到你...你知道我的意思。

+0

錯誤,日期選取器控件沒有此信息。您必須編寫自己的算法來找出簽名或使用某個第三方組件來執行此操作。除非你的意思是如何獲取日期值本身,你可以通過訪問'Value'屬性來獲得日期值。 – SirViver 2011-05-23 09:32:16

+0

是的,我只是想知道如何從datetimepicker獲得價值,謝謝;) – Madcowe 2011-05-23 09:37:59

回答

2

你不關心這一年。你只需要月和日值:

DateTimePicker dtp = new DateTimePicker(); 

int month = dtp.Value.Month; 
int day = dtp.Value.Day; 

然後,你可以做各地的各種星體的跡象if-else聲明:

if (month >= 3 && day >= 20 && month < 4 && day <21) 
{ 
    return AstralSign.Aries; 
} 
else if (/* some other sign */) 
{ 
    // ... 
} 

您可以創建爲標誌的enum還有:

enum AstralSign 
{ 
    ... 
    Aries 
    ... 
} 
1

DateTimePicker有一個屬性Value。這包含用戶選擇的日期。

如果您想在用戶作出選擇時獲得通知,只需訂閱ValueChanged屬性即可。

然後簡單地比較給定的日期是否落在任何星標的範圍內。

爲了讓星體跡象​​,我將建立一個嵌套的字典Dictionary<int, Dictionary<int, AstralSign>>那麼這可能是由

selectedSign = astralSigns[pickedDate.Month][pickedDate.Day]; 
1

訪問沒有內置的功能在DateTimePicker實現這一目標。你將不得不要麼去if-else方法或switch語句來找出一個特定日期屬於..

+0

'if-else'很好。但是,如果你使用'switch'去,你必須玩弄值,因爲它只接受'空'類型。 – 2011-05-23 09:36:09

1

如果您的DateTimePicker被稱爲dateTimePicker的,你可以做這樣的牌子哪:

DateTime pickedDate = new DateTime(dateTimePicker.Value.Year, dateTimePicker.Value.Month, dateTimePicker.Value.Day); 

然後你可以根據需要使用「拾取日期」。

+0

'dateTimePicker。值'已經是'DateTime'類型。我錯過了什麼? – 2011-05-23 09:36:51

+0

對不起,在我的代碼中,我將它與時間選擇器的時間相結合,所以我必須創建一個新的DateTime來包含兩者。當我回答時,我只是刪除了時間位,但應該像剛剛說的那樣使用dateTimePicker.Value。 – Greg 2011-05-23 15:22:16

1

在十二生肖中沒有內置的東西,所以我建議你建立自己的十二生肖清單。

比較日期落入其中十二生肖之一部分,你可以在DatePickerdateTimePicker1.Value)選擇的Datetime valueDayOfYear部分

所以0〜46走可能是你的第一個星座,並與DayOfYear部分比較這和你會得到你的星座(否則在比較DateTime物體時會出現問題)