最近3个月
本文关键字:3个月 最近 | 更新日期: 2023-09-27 18:03:01
在一个存储过程中有这样一行:
DATENAME(MONTH, tblReg.StartDate) as [Month],
现在我想把这行转换成linq
var b = sd.tblReg;
foreach (var c in b)
{
res += "'" + c.StartDate + "',";
}
res = res.Substring(0, res.Length - 1);
res += "]";
并想获得最后3个月…也就是说,当前月份是8月,所以如果当前月份是1月,那么8月是最后3个月,那么12月是12月,11月是10月。像这样的
['May' ,'June','July','Aug']
您可以这样做,使用Linq
查找以前的3
月份。DateTimeFormat.GetMonthName
将帮助您获得月份名称。
int month = ..; // given a month
var result = Enumerable
.Range(-2,18) // Compute +/- 3 months for original 12 months.
.TakeWhile(x=>x <=month) // Take months until the current month
.Reverse() // Reverse the order as we need backword months.
.Take(4) // Take top 4 months (including current month)
.Select(x=>CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(x<=0?x+12: x==12? 12 : (x+12)%12))
检查Demo