создать непрерывный период оплаты для каждого месяца - PullRequest
0 голосов
/ 06 марта 2012

Я хочу создать непрерывный период оплаты для каждого месяца. Предположим, я вставил платежный период для последнего января, который является датой начала: 01-01-2012, 12:00:00, конечной датой: 30: 01: 2012 11:59:00 Дата транзакции: 31: 01: 2012 12:00:00 и Статус: ОТКРЫТ. Теперь я хочу получить следующий результат, основанный на приведенной выше записи:

 2. start date : 01-02-2012 12:00:00 enddate : 28:02:2012 11:59:00 Transaction date : 29:02:2012 12:00:00 and status : CLOSED
 3. start date : 01-03-2012 12:00:00 enddate : 30:03:2012 11:59:00 Transaction date : 31:03:2012 12:00:00 and status : OPEN 

и первый статус ОТКРЫТО изменен на ЗАКРЫТО. Этот процесс продолжается автоматически в зависимости от даты начала, окончания и транзакции, пожалуйста, помогите мне сделать это ...

1 Ответ

2 голосов
/ 06 марта 2012

Попробуйте этот код ниже

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();

Надеюсь, это поможет !!!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...