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); }
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(); }
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); }
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(); } }
public static PersianMonth GetNextPersianMonth(this PersianMonth month) => month == PersianMonth.Esfand ? PersianMonth.Farvardin : (PersianMonth)((int)month + 1);
public static PersianMonth GetPreviousPersianMonth(this PersianMonth month) => month == PersianMonth.Farvardin ? PersianMonth.Esfand : (PersianMonth)((int)month - 1);
public static DayOfWeek GetFirstWeekDayOfPersianMonth( this PersianMonth month, int year) => GetFirstDayDateOfPersianMonth(month, year).DayOfWeek;
public static DateTime GetFirstDayDateOfPersianMonth( this PersianMonth month, int year) => _persianCalendar.ToDateTime(year, (int)month, 1, 0, 0, 0, 0);
public static DateTime GetDate(this PersianMonth month, int year, int day) => _persianCalendar.ToDateTime(year, (int)month, day, 0, 0, 0, 0);
public MonthViewModel(PersianMonth month) { Month = month; Days = new List <DayViewModel>(); Weeks = new List <WeekViewModel>(); }
public IEnumerable <ListItemViewModel> GetPersianDaysList( int year, PersianMonth month) => getDaysList(year, month.GetLastDayNumberOfPersianMonth(year));
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();
public static int GetPreviousPersianMonthYear( this PersianMonth month, int currentYear) => month == PersianMonth.Farvardin ? currentYear - 1 : currentYear;
public static int GetNextPersianMonthYear( this PersianMonth month, int currentYear) => month == PersianMonth.Esfand ? currentYear + 1 : currentYear;
public static string GetPersianMonthDisplayName(this PersianMonth month) => _monthNames[month];