需求:跨年周,如果当前动态加减N周,刚好在跨年周里(15年),那么当前周的第一天应为   2015-01-01,如果是在(14年)那么当前周应为2014-12-29

 

【时间处理】跨年周取新年第一天_Java

 

int span =1;

date =DateTime.Now

int daydiff = (-1) * Convert.ToInt32(date.DayOfWeek) + 1;
date = date.AddDays(daydiff + int.Parse((span).ToString()) * 7); //原始的不管跨年每次都会周第一天
if (span < 0 && date.Year != (date.AddDays(7)).Year)
{
date = DateTime.Parse((date.Year + 1).ToString() + "-01-01");
}
else if (span == 0 && dateBak.Year != date.Year) //如果为0的话
{
date = DateTime.Parse(dateBak.Year.ToString() + "-01-01");
}
time = date.ToString("yyyy-MM-dd 00:00:00");