有没有办法根据给定的日期检索一年中的季节?对于地球上的任何地方?
这是基于时区和半球吗?
请注意,在南半球,夏季仍然是温暖的月份。
EDIT:
为了澄清一下,我说的是天文数字seasons http://en.wikipedia.org/wiki/Season.
您可以使用这个简单的代码:
private int getSeason(DateTime date) {
float value = (float)date.Month + date.Day / 100f; // <month>.<day(2 digit)>
if (value < 3.21 || value >= 12.22) return 3; // Winter
if (value < 6.21) return 0; // Spring
if (value < 9.23) return 1; // Summer
return 2; // Autumn
}
要包含南半球的季节,代码可以变为:
private int getSeason(DateTime date, bool ofSouthernHemisphere) {
int hemisphereConst = (ofSouthernHemisphere ? 2 : 0);
Func<int, int> getReturn = (northern) => {
return (northern + hemisphereConst) % 4;
};
float value = (float)date.Month + date.Day / 100f; // <month>.<day(2 digit)>
if (value < 3.21 || value >= 12.22) return getReturn(3); // 3: Winter
if (value < 6.21) return getReturn(0); // 0: Spring
if (value < 9.23) return getReturn(1); // 1: Summer
return getReturn(2); // 2: Autumn
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)