が
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();
を使用して関数を呼び出してみ最初のエントリの開始、終了およびトランザクションの日付に基づいて、お役に立てれば !!!
2月に何が起こると思いますか(特にうるう年)? –
月の最初の日を取得して検索し、1か月の最終日を取得する方法を見つけることができます。これらの試しに基づいて終了日が最終日よりも1日少なくなります。コンクリートにこだわって、ここに戻ってくることができます! – V4Vendetta
上記の結果は、月ごとに自動的に作成されます。 – Fernando