string Get_Star;
int s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12;
int Tp_Time;
Tp_Time = Convert.ToInt32 (StarTimes);
s1=321;
s2=420;
s3=521;
s4=621;
s5=723;
s6=823;
s7=923;
s8=1023;
s9=1122;
s10=1222;
s11=120;
s12=219; if( Tp_Time - s1 >=0 && s2 - Tp_Time  <=99 && s2 - Tp_Time >= 0)
{
return "白羊";
}
else if(Tp_Time - s2 >=0 && s3 - Tp_Time  <=101 && s3 - Tp_Time >= 0)
{
return "金牛";
}
.......如何??这个办法好妈???

解决方案 »

  1.   

    用case或许是最简单的。或者看看各个星座间隔时间是不是有规律?比如都是一样大?
    如果有规律的话,就可以用算法了。
      

  2.   

    反正数据不是很多,switch case 足够乐
      

  3.   

    http://expert.csdn.net/Expert/TopicView1.asp?id=1913842里面我的回贴有
      

  4.   

    public class StarProcess
    { /// <summary>
    /// 返回值,需要初始化
    /// </summary>
    public readonly static string[] sStars; //["白羊"] /// <summary>
    /// 比较值(星座起始日),需要初始化
    /// </summary>
    public readonly static string[] sStarDates;//["0122",]

    /// <summary>
    /// 建构、初始化
    /// </summary>
    static StarProcess()
    {
    sStars = new string[]{"白羊"/*....*/};
    sStarDates = new string[]{"0122"/*....*/};
    } /// <summary>
    /// 根据生日取得星座
    /// </summary>
    /// <param name="sBir"></param>
    /// <returns></returns>
    public static string GetStar(string sBir)
    {
    for(int i = 0 ; i< 12; i++ )
    {
    if(sBir < sStarDates[i])
    return sStars[i];
    }
    }