日期计算改进
本文关键字:计算 日期 | 更新日期: 2023-09-27 18:17:19
在我的程序中,我想计算最后一天,上周,最近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到8作为发布值,而是使用一些代码,例如:
d1, d2, d7, d14, m1, m3, m6, y1
然后解析此代码以确定要从当前日期中减去哪个值。例如:
d1 --> DateTime.Now.AddDays(-1)
m3 --> DateTime.Now.AddMonths(-3)