X Axis Formatter Method
The user can select a specified DateRange label from a dropdown, which will then dynamically render sales data in between the given range. The DateRange labels are as follows: Today or Yesterday Current Week or Last Week Current Month or Last Month Current Year or Last Year
The x axis should be labeled as follows on user selection: Today or Yesterday (12am - 11:59pm) Current Week or Last Week (Sun - Mon) Current Month or Last Month (1 - 30 or 1- 31) Current Year or Last Year (Jan - Dec)
The code I currently have (Not working):
public string FormatXAxis(object value)
{
DateTime dateTime = (DateTime)value;
if (selectedDateRange == "Today")
{
DateTime startOfDay = dateTime.Date;
DateTime endOfDay = startOfDay.AddDays(1).AddTicks(-1);
if (dateTime >= startOfDay && dateTime <= endOfDay)
{
return dateTime.ToString("h tt", CultureInfo.InvariantCulture);
}
}
else if (selectedDateRange == "Yesterday")
{
DateTime startOfYesterday = dateTime.Date.AddDays(-1);
DateTime endOfYesterday = dateTime.Date.AddTicks(-1);
if (dateTime >= startOfYesterday && dateTime <= endOfYesterday)
{
return dateTime.ToString("h tt", CultureInfo.InvariantCulture);
}
}
else if (selectedDateRange == "Current Week" || selectedDateRange == "Last Week")
{
DayOfWeek dayOfWeek = dateTime.DayOfWeek;
if (dayOfWeek >= DayOfWeek.Monday && dayOfWeek <= DayOfWeek.Thursday)
{
return dateTime.ToString("ddd", CultureInfo.InvariantCulture);
}
}
else if (selectedDateRange == "Current Month" || selectedDateRange == "Last Month")
{
return dateTime.ToString("dd", CultureInfo.InvariantCulture);
}
else if (selectedDateRange == "Current Year" || selectedDateRange == "Last Year")
{
return CultureInfo.InvariantCulture.DateTimeFormat.GetAbbreviatedMonthName(dateTime.Month);
}
return string.Empty; // Return empty string if no match
}