Esempio n. 1
0
 public MonthViewModel(int year, PersianMonth month)
 {
     Year  = year;
     Month = month;
     Days  = new List <DayViewModel>();
     Weeks = new List <WeekViewModel>();
     Today = DateTime.Now.GetDayInfo();
 }
 private PersianDay GetLastDayOfMonth(PersianMonth PersianMonth)
 {
     for (var i = PersianMonth.ListWeeks.Count - 1; i >= 0; i--)
     {
         if (PersianMonth.ListWeeks[i].ListDays.Count != 0)
         {
             return(PersianMonth.ListWeeks[i].ListDays[PersianMonth.ListWeeks[i].ListDays.Count - 1]);
         }
     }
     return(null);
 }
        public PersianMonth GetMonth(int year, int month)
        {
            var yearEntity  = CreateYearCalendar(year);
            var monthEntity = new PersianMonth();

            for (var i = 0; i < yearEntity.listMonths.Count; i++)
            {
                if (i + 1 != month)
                {
                    continue;
                }
                monthEntity = yearEntity.listMonths[i];
                break;
            }
            return(monthEntity);
        }
Esempio n. 4
0
 public PersianDate(int year, PersianMonth month, int day)
 {
     if (year < 1300)
     {
         year += 1300;
     }
     Date = year.ToString() + '/';
     if ((int)month < 10)
     {
         Date += '0';
     }
     Date += ((int)month).ToString() + '/';
     if (day < 10)
     {
         Date += '0';
     }
     Date += day.ToString();
 }
Esempio n. 5
0
        public static int GetLastDayNumberOfPersianMonth(
            this PersianMonth month,
            int year)
        {
            var monthLastNumber = 30;

            if ((int)month < 7)
            {
                return(31);
            }

            if (month == PersianMonth.Esfand)
            {
                return(IsLeapYear(year)
                    ? 30
                    : 29);
            }

            return(monthLastNumber);
        }
Esempio n. 6
0
 public PersianDate(int year, PersianMonth month, int day, int hour, int minutes, int second)
 {
     if (year < 1300)
     {
         year += 1300;
     }
     Date = year.ToString() + '/';
     if ((int)month < 10)
     {
         Date += '0';
     }
     Date += ((int)month).ToString() + '/';
     if (day < 10)
     {
         Date += '0';
     }
     Date += day.ToString();
     if (hour != 0 || minutes != 0 || second != 0)
     {
         Date += "  ";
         if (hour < 10)
         {
             Date += '0';
         }
         Date += hour.ToString() + ":";
         if (minutes < 10)
         {
             Date += '0';
         }
         Date += minutes.ToString() + ":";
         if (second < 10)
         {
             Date += '0';
         }
         Date += second.ToString();
     }
 }
Esempio n. 7
0
 public static PersianMonth GetNextPersianMonth(this PersianMonth month)
 => month == PersianMonth.Esfand
         ? PersianMonth.Farvardin
         : (PersianMonth)((int)month + 1);
Esempio n. 8
0
 public static PersianMonth GetPreviousPersianMonth(this PersianMonth month)
 => month == PersianMonth.Farvardin
         ? PersianMonth.Esfand
         : (PersianMonth)((int)month - 1);
Esempio n. 9
0
 public static DayOfWeek GetFirstWeekDayOfPersianMonth(
     this PersianMonth month, int year)
 => GetFirstDayDateOfPersianMonth(month, year).DayOfWeek;
Esempio n. 10
0
 public static DateTime GetFirstDayDateOfPersianMonth(
     this PersianMonth month, int year)
 => _persianCalendar.ToDateTime(year, (int)month, 1, 0, 0, 0, 0);
Esempio n. 11
0
 public static DateTime GetDate(this PersianMonth month, int year, int day)
 => _persianCalendar.ToDateTime(year, (int)month, day, 0, 0, 0, 0);
Esempio n. 12
0
 public MonthViewModel(PersianMonth month)
 {
     Month = month;
     Days  = new List <DayViewModel>();
     Weeks = new List <WeekViewModel>();
 }
Esempio n. 13
0
 public IEnumerable <ListItemViewModel> GetPersianDaysList(
     int year, PersianMonth month)
 => getDaysList(year, month.GetLastDayNumberOfPersianMonth(year));
Esempio n. 14
0
        public MonthViewModel GetMonthView(int year, PersianMonth month)
        {
            var monthView            = new MonthViewModel(year, month);
            int dayNumber            = 1;
            int prevMonthStartNumber = monthView.PreviousMonthStartDayNumber;

            monthView.Days = new List <DayViewModel>();

            bool started = false, finished = false;

            for (int j = 0; j < 6; j++)
            {
                for (int i = 6; i >= 0; i--)
                {
                    if (j == 0)  //means it's first week
                    {
                        if (i == 7 - monthView.FirstDayWeekDayNumber)
                        {
                            started = true;
                        }
                        else
                        {
                            if (!started)
                            {
                                var day = DayViewModel.Init(
                                    monthView.PreviousMonth.GetDate(
                                        monthView.PreviousMonthYear,
                                        prevMonthStartNumber));
                                day.Disabled = true;
                                monthView.Days.Add(day);
                                prevMonthStartNumber++;
                            }
                        }
                    }

                    if (finished)
                    {
                        var day = DayViewModel.Init(
                            monthView.NextMonth.GetDate(monthView.NextMonthYear, dayNumber));
                        day.Disabled = true;
                        monthView.Days.Add(day);
                        dayNumber++;
                    }

                    if (started && !finished)
                    {
                        var day = DayViewModel.Init(
                            month.GetDate(year, dayNumber));
                        monthView.Days.Add(day);
                        if (dayNumber == monthView.LastDayNumber)
                        {
                            finished  = true;
                            dayNumber = 0;
                        }
                        dayNumber++;
                    }
                }
            }

            int           idx    = 0;
            int           w      = 1;
            int           wOrder = 1;
            WeekViewModel week   = new WeekViewModel();

            foreach (var day in monthView.Days)
            {
                if (w == 1)
                {
                    week = new WeekViewModel {
                        Order     = wOrder,
                        StartDate = day.DateValue
                    };
                }
                if (w == 7)
                {
                    week.FinishDate = day.DateValue;
                    monthView.Weeks.Add(week);
                    w = 0;
                    wOrder++;
                }

                week.Days.Add(day);
                w++;
            }

            return(monthView);
        }
 private PersianDay GetFirstDayOfMonth(PersianMonth PersianMonth) => PersianMonth.ListWeeks
 .Where(t => t.ListDays.Count != 0)
 .Select(t => t.ListDays[0]).FirstOrDefault();
Esempio n. 16
0
 public static int GetPreviousPersianMonthYear(
     this PersianMonth month,
     int currentYear)
 => month == PersianMonth.Farvardin
             ? currentYear - 1
             : currentYear;
Esempio n. 17
0
 public static int GetNextPersianMonthYear(
     this PersianMonth month,
     int currentYear)
 => month == PersianMonth.Esfand
             ? currentYear + 1
             : currentYear;
Esempio n. 18
0
 public static string GetPersianMonthDisplayName(this PersianMonth month)
 => _monthNames[month];