C#中,如何在if语句上使用dateTimePicker的值?

问题描述:

我正在做的工作包括找出一个人的星座,所以我把一个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

你不关心这一年。你只需要月和日值:

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 
    ... 
} 

DateTimePicker有一个属性Value。这包含用户选择的日期。

如果您想在用户作出选择时获得通知,只需订阅ValueChanged属性即可。

然后简单地比较给定的日期是否落在任何星标的范围内。

为了让星体迹象​​,我将建立一个嵌套的字典Dictionary<int, Dictionary<int, AstralSign>>那么这可能是由

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

访问没有内置的功能在DateTimePicker实现这一目标。你将不得不要么去if-else方法或switch语句来找出一个特定日期属于..

+0

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

如果您的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

在十二生肖中没有内置的东西,所以我建议你建立自己的十二生肖清单。

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

所以0〜46走可能是你的第一个星座,并与DayOfYear部分比较这和你会得到你的星座(否则在比较DateTime物体时会出现问题)