我想从太阳和月亮的天经度的角度(360度)计算出阴历月的名称。
我有此代码,但是有很多问题!
public static string ISLAMIC_MONTH(double SUN_ECLIPTIC_LONGITUDE, double MOON_ECLIPTIC_LONGITUDE)
{
if (SUN_ECLIPTIC_LONGITUDE >= 0 && MOON_ECLIPTIC_LONGITUDE >= 0)
{
return "Shaaban";
}
if (SUN_ECLIPTIC_LONGITUDE >= 30 && MOON_ECLIPTIC_LONGITUDE >= 30)
{
return "Ramadan";
}
if (SUN_ECLIPTIC_LONGITUDE >= 60 && MOON_ECLIPTIC_LONGITUDE >= 60)
{
return "Shawwal";
}
if (SUN_ECLIPTIC_LONGITUDE >= 90 && MOON_ECLIPTIC_LONGITUDE >= 90)
{
return "Dhu al-Qidah";
}
if (SUN_ECLIPTIC_LONGITUDE >= 120 && MOON_ECLIPTIC_LONGITUDE >= 120)
{
return "Dhu al-Hijjah";
}
if (SUN_ECLIPTIC_LONGITUDE >= 150 && MOON_ECLIPTIC_LONGITUDE >= 150)
{
return "Muharram";
}
if (SUN_ECLIPTIC_LONGITUDE >= 180 && MOON_ECLIPTIC_LONGITUDE >= 180)
{
return "Safar";
}
if (SUN_ECLIPTIC_LONGITUDE >= 210 && MOON_ECLIPTIC_LONGITUDE >= 210)
{
return "Rabi I";
}
if (SUN_ECLIPTIC_LONGITUDE >= 240 && MOON_ECLIPTIC_LONGITUDE >= 240)
{
return "Rabi II";
}
if (SUN_ECLIPTIC_LONGITUDE >= 270 && MOON_ECLIPTIC_LONGITUDE >= 270)
{
return "Jumada I";
}
if (SUN_ECLIPTIC_LONGITUDE >= 300 && MOON_ECLIPTIC_LONGITUDE >= 300)
{
return "Jumada II";
}
if (SUN_ECLIPTIC_LONGITUDE >= 330 && MOON_ECLIPTIC_LONGITUDE >= 330)
{
return "Rajab";
}
return "";
}
将操作结果重复一个月而不知道所有月份。
我需要帮助...
您当前的方法等效于仅编写此方法,这显然不是您想要的:
if (SUN_ECLIPTIC_LONGITUDE >= 0 && MOON_ECLIPTIC_LONGITUDE >= 0)
{
return "Shaaban";
}
return "";
之所以这样,是因为任何> = 0的值都匹配,所以所有正值都匹配。
您应该颠倒条件的顺序,以便最小的不首先匹配。我还建议您使用else if
来明确您对将来的维护者所做的事情。
public static string ISLAMIC_MONTH(double SUN_ECLIPTIC_LONGITUDE, double MOON_ECLIPTIC_LONGITUDE)
{
if (SUN_ECLIPTIC_LONGITUDE >= 330 && MOON_ECLIPTIC_LONGITUDE >= 330)
{
return "Rajab";
}
else if (SUN_ECLIPTIC_LONGITUDE >= 300 && MOON_ECLIPTIC_LONGITUDE >= 300)
{
return "Jumada II";
}
else if (SUN_ECLIPTIC_LONGITUDE >= 270 && MOON_ECLIPTIC_LONGITUDE >= 270)
{
return "Jumada I";
}
else if (SUN_ECLIPTIC_LONGITUDE >= 240 && MOON_ECLIPTIC_LONGITUDE >= 240)
{
return "Rabi II";
}
else if (SUN_ECLIPTIC_LONGITUDE >= 210 && MOON_ECLIPTIC_LONGITUDE >= 210)
{
return "Rabi I";
}
else if (SUN_ECLIPTIC_LONGITUDE >= 180 && MOON_ECLIPTIC_LONGITUDE >= 180)
{
return "Safar";
}
else if (SUN_ECLIPTIC_LONGITUDE >= 150 && MOON_ECLIPTIC_LONGITUDE >= 150)
{
return "Muharram";
}
else if (SUN_ECLIPTIC_LONGITUDE >= 120 && MOON_ECLIPTIC_LONGITUDE >= 120)
{
return "Dhu al-Hijjah";
}
else if (SUN_ECLIPTIC_LONGITUDE >= 90 && MOON_ECLIPTIC_LONGITUDE >= 90)
{
return "Dhu al-Qidah";
}
else if (SUN_ECLIPTIC_LONGITUDE >= 60 && MOON_ECLIPTIC_LONGITUDE >= 60)
{
return "Shawwal";
}
else if (SUN_ECLIPTIC_LONGITUDE >= 30 && MOON_ECLIPTIC_LONGITUDE >= 30)
{
return "Ramadan";
}
else if (SUN_ECLIPTIC_LONGITUDE >= 0 && MOON_ECLIPTIC_LONGITUDE >= 0)
{
return "Shaaban";
}
return "";
}