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

    +142

    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
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    private MonthCalendarModel GetMonthCalendar(int year, int month, string roleId, string doctorId)
    {
    var days = new List<DayCalendarModel>();
    var today = DateTime.Today;
    var firstDay = new DateTime(year, month, 1);
    int firstDayOfWeek = 0;
    if (firstDay.DayOfWeek == DayOfWeek.Monday)
        firstDayOfWeek = 1;
    if (firstDay.DayOfWeek == DayOfWeek.Tuesday)
        firstDayOfWeek = 2;
    if (firstDay.DayOfWeek == DayOfWeek.Wednesday)
        firstDayOfWeek = 3;
    if (firstDay.DayOfWeek == DayOfWeek.Thursday)
        firstDayOfWeek = 4;
    if (firstDay.DayOfWeek == DayOfWeek.Friday)
        firstDayOfWeek = 5;
    if (firstDay.DayOfWeek == DayOfWeek.Saturday)
        firstDayOfWeek = 6;
    if (firstDay.DayOfWeek == DayOfWeek.Sunday)
        firstDayOfWeek = 7;
    for(int i= firstDayOfWeek-1; i > 0; i--)
    {
        DateTime day = firstDay.AddDays(-i);
        days.Add(new DayCalendarModel{Available = -1, Day = day.Day, Enabled = false, CssClass = string.Empty});
    }
    DateScheduler dateScheduler = GetDateScheduler(roleId, doctorId);
    DateTime date;
    for( date = firstDay; date.Month == month; date = date.AddDays(1)) {
        string cssClass = dateScheduler.CheckDate(date, true) ? "free": "disbl";
        bool enabled = (date >= today);
        cssClass = enabled ? cssClass : string.Empty;
    	days.Add(new DayCalendarModel(){Available = 3, Day = date.Day, Enabled = enabled, CssClass = cssClass, Date = date.ToString(FormatHelper.DateOnlySerializationFormat)});
    }
    if(date.DayOfWeek != DayOfWeek.Monday) {
        for(; GetDayOfWeek(date.DayOfWeek) <= 7; date = date.AddDays(1)) {
            days.Add(new DayCalendarModel()
                {Available = -1, Day = date.Day, Enabled = false, CssClass = string.Empty});
            if(date.DayOfWeek == DayOfWeek.Sunday) {
                break;
            }
        }
    }
    
    // пропущено ...
    }
    
    private int GetDayOfWeek(DayOfWeek dayOfWeek)
    {
        if(dayOfWeek == System.DayOfWeek.Sunday)
    	{
            return 7;
        }
        return (int)dayOfWeek;
    }

    полученный List<DayCalendarModel> используется для отображения пользователю календаря с отмеченными днями работы врача

    Запостил: vldalx, 09 Июля 2015

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

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

    Ошибка компиляции комментария:
    1. Гости могут высказаться только во вторник, пятницу или субботу
    ava Семь раз отмерь — один отрежь, guest!
    А не использовать ли нам bbcode?
    • [b]жирный[/b] — жирный
    • [i]курсив[/i] — курсив
    • [u]подчеркнутый[/u] — подчеркнутый
    • [s]перечеркнутый[/s] — перечеркнутый
    • [blink]мигающий[/blink] — мигающий
    • [color=red]цвет[/color] — цвет (подробнее)
    • [size=20]размер[/size] — размер (подробнее)
    • [code=<language>]some code[/code] (подробнее)
    Проверочный код