在我的课程中,我想计算最后一天,上周,过去3个月等等。
我已尝试使用以下代码。
我的下拉项目是这样的:
string[] items = { "All", "Last 1 Day", "Last 2 Days",
"Last 1 Week", "Last 2 Weeks", "Last 1 Month",
"Last 3 Months", "Last 6 Months", "Last 1 Year" };
选择下拉列表时选择的索引:
public int _selectedDay = -1;
public int selectedDay
{
get { return _selectedDay; }
set
{
this.RaiseAndSetIfChanged(x => x.selectedDay, value);
dayCalculation(selectedDay);
}
}
日计算方法:
void dayCalculation(int selected)
{
switch (selected)
{
case 0:
//MessageBox.Show("Selected Index==>" + (selectedDay));
break;
case 1:
MessageBox.Show("Selected Index==>" + (DateTime.Now.AddDays(-1).ToString("dd/MM/yy")));
break;
case 2:
MessageBox.Show("Selected Index==>" + (DateTime.Now.AddDays(-2).ToString("dd/MM/yy")));
break;
case 3:
MessageBox.Show("Selected Index==>" + (DateTime.Now.AddDays(-7).ToString("dd/MM/yy")));
break;
case 4:
MessageBox.Show("Selected Index==>" + (DateTime.Now.AddDays(-14).ToString("dd/MM/yy")));
break;
case 5:
MessageBox.Show("Selected Index==>" + (DateTime.Now.AddMonths(-1).ToString("dd/MM/yy")));
break;
case 6:
MessageBox.Show("Selected Index==>" + (DateTime.Now.AddMonths(-3).ToString("dd/MM/yy")));
break;
case 7:
MessageBox.Show("Selected Index==>" + (DateTime.Now.AddMonths(-6).ToString("dd/MM/yy")));
break;
case 8:
MessageBox.Show("Selected Index==>" + (DateTime.Now.AddYears(-1).ToString("dd/MM/yy")));
break;
default:
break;
}
}
在这里我可以得到预期的输出。但现在我想简化/减少程序行。是否有任何默认或简单的方法来计算前几天?
答案 0 :(得分:0)
我认为你不能比你拥有的更简单。一种解决方案是不使用0到8作为发布值,而是使用一些代码,例如:
d1, d2, d7, d14, m1, m3, m6, y1
然后解析此代码以确定从当前日期中减去的值。例如:
d1 --> DateTime.Now.AddDays(-1)
m3 --> DateTime.Now.AddMonths(-3)
它使您的解决方案更灵活但不简单。