Calendar rendering implementation.
This commit is contained in:
@@ -13,7 +13,8 @@ public record CalendarSettings(DayOfWeek FirstDayOfWeek,
|
||||
TimeSpan WorkingHourEnd,
|
||||
double HourHeight,
|
||||
DayHeaderDisplayType DayHeaderDisplayType,
|
||||
CultureInfo CultureInfo)
|
||||
CultureInfo CultureInfo,
|
||||
string TimedDayHeaderDateFormat = "ddd dd")
|
||||
{
|
||||
public int WorkWeekDayCount
|
||||
{
|
||||
@@ -65,4 +66,35 @@ public record CalendarSettings(DayOfWeek FirstDayOfWeek,
|
||||
var dateTime = DateTime.Today.Add(timeSpan);
|
||||
return dateTime.ToString(format, CultureInfo.InvariantCulture);
|
||||
}
|
||||
|
||||
public string GetTimedDayHeaderText(DateOnly date)
|
||||
{
|
||||
var format = string.IsNullOrWhiteSpace(TimedDayHeaderDateFormat) ? "ddd dd" : TimedDayHeaderDateFormat;
|
||||
|
||||
try
|
||||
{
|
||||
return date.ToDateTime(TimeOnly.MinValue).ToString(format, CultureInfo);
|
||||
}
|
||||
catch (FormatException)
|
||||
{
|
||||
return date.ToDateTime(TimeOnly.MinValue).ToString("ddd dd", CultureInfo);
|
||||
}
|
||||
}
|
||||
|
||||
public string GetTimedHourLabelText(int hour)
|
||||
{
|
||||
if (hour < 0 || hour > 24)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException(nameof(hour));
|
||||
}
|
||||
|
||||
if (DayHeaderDisplayType == DayHeaderDisplayType.TwentyFourHour)
|
||||
{
|
||||
return hour.ToString(CultureInfo);
|
||||
}
|
||||
|
||||
var displayHour = hour % 24;
|
||||
var dateTime = DateTime.Today.AddHours(displayHour);
|
||||
return dateTime.ToString("h tt", CultureInfo);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user