羊3。
21 4。
19牛4。
20 5。
20子5。
21 6。
21蟹6。
22 7。
22 狮7。
23 8。
22 女8。
23 9。
22秤9。
23 10。
22 蝎10。
23 11。
22 射11。
23 12。
21羯12。
22 1。
19瓶1。
20 2。
18鱼2。
19 3。
20
农历转换结果1968年的第46周 11月份的第3周(11月11日~11月17日) 星期六(Sat) 1968年的第321天日期农历1968年9月26日 九月廿六 = 阳历1968年11月16日 生肖申猴 干支戊申年 癸亥月 庚寅日星座天蝎座 10月24日~11月22日
if else 和 switch case都可以实现,先做一个日期解析器:public class DateParser{private static string[] _constellationNames ={"白羊座", "金牛座", "双子座","巨蟹座", "狮子座", "处女座","天秤座", "天蝎座", "射手座","摩羯座", "水瓶座", "双鱼座"};private readonly DateTime _birthday;public DateParser(DateTime birthday){_birthday = birthday;}public string Constellation{get{int index = 0;int y = _birthday.Year;int m = _birthday.Month;int d = _birthday.Day;y = m * 100 + d;if (((y >= 321) && (y else if ((y >= 420) && (y else if ((y >= 521) && (y else if ((y >= 621) && (y else if ((y >= 723) && (y else if ((y >= 823) && (y else if ((y >= 923) && (y else if ((y >= 1023) && (y else if ((y >= 1122) && (y else if ((y >= 1222) || (y else if ((y >= 120) && (y else if ((y >= 219) && (y else { index = 0; }return _constellationNames[index];}}}然后main函数里这么调用:static void Main(string[] args){DateTime born = DateTime.Parse("1986-3-18");DateParser parser = new DateParser(born);Console.WriteLine(parser.Constellation);Console.Read();}
参考:疑难188 如何根据出生日期得到星座=LOOKUP(Z2&AA2,{101,"摩羯座";120,"水瓶座";219,"双鱼座";321,"白羊座";420,"金牛座";521,"双子座";621,"巨蟹座";723,"狮子座";823,"处女座";923,"天秤座";1023,"天蝎座";1122,"射手座";1222,"摩羯座"})