1. C# / Говнокод #3734

    +113

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    public static byte[] GetMonthlyFinancialReport(
            //...
            DateTime dateInterested)
        {
    // ...
    
            DateTime monthAgoDate = dateInterested;
    
            int dayInterested = dateInterested.Day;
            int daysInMonthInterested = DateTime.DaysInMonth(dateInterested.Year, dateInterested.Month);
            int daysInPreviousMonth = DateTime.DaysInMonth(dateInterested.Year, (dateInterested.Month == 1) ? 12 : (dateInterested.Month - 1));
    
            if (dayInterested == daysInMonthInterested)
            {
                monthAgoDate = monthAgoDate.AddDays(-1 * monthAgoDate.Day);
            }
            else
            {
                monthAgoDate = monthAgoDate.AddDays(-1 * Math.Max(daysInPreviousMonth, Math.Min(daysInMonthInterested, dayInterested)));
            }
    
    // ...
        }

    Головоломочка для любителей поиграться с датами... :)

    Запостил: svkandroid, 19 Июля 2010

    Комментарии (2) RSS

    Добавить комментарий