/// <summary>
/// 根据年和当前年的第几天,获取年月日字符串
/// </summary>
/// <param name="Year"></param>
/// <param name="Days"></param>
/// <returns></returns>
public string GetCurrentYearForDays(int Year, int Days)
{
///二月,闰年 28年,其他 29天
int ErYueDays = Year % 4 == 0 ? 28 : 29; ;
///小月 30天
int XiaoYueDays = 30;
///大月 31天
int DaYueDays = 31;
///一年中大月的月份
int[] DY = { 1, 3, 5, 7, 8, 10, 12 };
///一年中小月的月份
int[] XY = { 4, 6, 9, 11 };
///一年中二月的月份
int[] EY = { 2 };
int O_Year = 0, O_Mouth = 0, O_Day = 0;
try
{
O_Year = Year;
///直到上个月的累积天数
int LastMouthDay = 0;
///十二个月
for (int i = 1; i <= 12; i++)
{
int MouthDays = 0;
if (DY.Contains(i)) MouthDays = DaYueDays;
if (XY.Contains(i)) MouthDays = XiaoYueDays;
if (EY.Contains(i)) MouthDays = ErYueDays;
///判断是否是当前月
if (LastMouthDay + MouthDays >= Days)
{
O_Mouth = i;
O_Day = Days - LastMouthDay;
LastMouthDay += MouthDays;
break;
}
else
{
LastMouthDay += MouthDays;
}
}
///如果超过最大天数,则返回为空
if (LastMouthDay < Days)
{
O_Year = 0;
O_Mouth = 0;
O_Day = 0;
return "";
}
}
catch (Exception)
{
throw;
}
return string.Format("{0}-{1}-{2}", O_Year.ToString().PadLeft(4, '0'), O_Mouth.ToString().PadLeft(2, '0'), O_Day.ToString().PadLeft(2, '0'));
}