feat: simplify mechanism.
This commit is contained in:
@@ -1,21 +1,67 @@
|
||||
namespace Ursa.Controls;
|
||||
|
||||
public class CalendarContext(int? year = null, int? month = null, int? day = null)
|
||||
public sealed class CalendarContext(int? year = null, int? month = null, int? startYear = null, int? endYear = null)
|
||||
{
|
||||
public int? Year = year;
|
||||
public int? Month = month;
|
||||
public int? Day = day;
|
||||
public int? StartYear;
|
||||
public int? EndYear;
|
||||
public int? Year { get; } = year;
|
||||
public int? Month { get; } = month;
|
||||
public int? StartYear { get; } = startYear;
|
||||
public int? EndYear { get; } = endYear;
|
||||
|
||||
|
||||
public CalendarContext Clone()
|
||||
{
|
||||
return new CalendarContext(Year, Month, Day) { StartYear = StartYear, EndYear = EndYear };
|
||||
return new CalendarContext(Year, Month, StartYear, EndYear);
|
||||
}
|
||||
|
||||
public static CalendarContext Today()
|
||||
{
|
||||
return new CalendarContext(DateTime.Today.Year, DateTime.Today.Month, 1);
|
||||
return new CalendarContext(DateTime.Today.Year, DateTime.Today.Month);
|
||||
}
|
||||
|
||||
public CalendarContext With(int? year = null, int? month = null, int? startYear = null, int? endYear = null)
|
||||
{
|
||||
return new CalendarContext(year ?? Year, month ?? Month, startYear ?? StartYear, endYear ?? EndYear);
|
||||
}
|
||||
|
||||
public CalendarContext NextMonth()
|
||||
{
|
||||
var year = Year;
|
||||
var month = Month;
|
||||
if (month == 12)
|
||||
{
|
||||
year++;
|
||||
month = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
month++;
|
||||
}
|
||||
return new CalendarContext(year, month, StartYear, EndYear);
|
||||
}
|
||||
|
||||
public CalendarContext PreviousMonth()
|
||||
{
|
||||
var year = Year;
|
||||
var month = Month;
|
||||
if (month == 1)
|
||||
{
|
||||
year--;
|
||||
month = 12;
|
||||
}
|
||||
else
|
||||
{
|
||||
month--;
|
||||
}
|
||||
return new CalendarContext(year, month, StartYear, EndYear);
|
||||
}
|
||||
|
||||
public CalendarContext NextYear()
|
||||
{
|
||||
return new CalendarContext(Year + 1, Month, StartYear, EndYear);
|
||||
}
|
||||
|
||||
public CalendarContext PreviousYear()
|
||||
{
|
||||
return new CalendarContext(Year - 1, Month, StartYear, EndYear);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user