尝试以下
public class Result
{
private int _daysInMonth;
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
public DateTime TransactionDate { get; set; }
public string Status { get; set; }
public ResultCollection Generate(DateTime fromdate, DateTime enddate)
{
var collection = new ResultCollection();
for (; fromdate < enddate; fromdate = fromdate.AddMonths(1))
{
_daysInMonth = DateTime.DaysInMonth(fromdate.Year, fromdate.Month);
var res = new Result
{
StartDate = fromdate,
EndDate = fromdate.AddDays(_daysInMonth - 1).AddMinutes(-1),
TransactionDate = fromdate.AddDays(_daysInMonth - 1),
Status = "Close"
};
collection.Add(res);
}
collection.ElementAt(collection.Count-1).Status = "Open";
return collection;
}
}
public class ResultCollection : System.Collections.ObjectModel.Collection<Result>
{
}
呼叫使用
DateTime start = new DateTime(2012, 01, 01);
DateTime end = new DateTime(2012, 05, 01);
GridView1.DataSource = new Result().Generate(start, end);
GridView1.DataBind();
我的功能验证码希望这可以帮助 !!!
你期望在二月份(特别是在闰年)发生什么? – 2012-03-06 05:16:46
你可以得到每月的第一天,搜索一下,你会发现如何得到一个月的最后一天,你的结束日期比最后一天少一天,基于这些尝试的东西,如果你得到卡住在具体的东西,你可以回到这里! – V4Vendetta 2012-03-06 05:27:41
以上每个月自动创建的结果开始或达到交易日期。 – Fernando 2012-03-06 05:32:00