嘗試以下
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