我目前正在尝试制作一种算法,将对象的捕获日期(它们是图像)与用户选择的日期范围进行比较。图像的捕获日期当前存储为 mm/yyyy。在拆分并存储 startMonth 和 startYear 是用户输入的值后,我将捕获的年份和月份转换为整数。在将它们拆分并存储为monthand之后,我将捕获日期的年份和月份转换为整数year。startMonth并startYear存储用户输入的值。如果它在日期范围内,那么我将它从存储的列表中添加到“DisplayList”。我需要它来识别开始月份可以大于结束月份的日期。我可能错过了一些简单的东西。string month = split[0];string year = split[1];if (startYear <= Convert.ToInt32(year) && endYear >= Convert.ToInt32(year)){ if (startYear == Convert.ToInt32(year) && endYear == Convert.ToInt32(year)) { if (startMonth <= Convert.ToInt32(month) && endMonth >= Convert.ToInt32(month)) { DisplayList.Add(ImageList[i]); // Adds it to the DisplayList } } else if (startYear == Convert.ToInt32(year) || endYear == Convert.ToInt32(year)) { if (startMonth <= Convert.ToInt32(month) && endMonth >= Convert.ToInt32(month)) { DisplayList.Add(ImageList[i]); } else if (startYear == Convert.ToInt32(year) && startMonth <= Convert.ToInt32(month)) { DisplayList.Add(ImageList[i]); } else if (endYear == Convert.ToInt32(year) && startMonth >= Convert.ToInt32(month)) { DisplayList.Add(ImageList[i]); } }}
1 回答
子衿沉夜
TA贡献1828条经验 获得超3个赞
将您的日期存储为日期会更简单,但如果您没有选择,则应执行以下操作:
var startDate = new DateTime(Convert.ToInt32(startYear), Convert.ToInt32(startMonth), 1);
var endDate = new DateTime(Convert.ToInt32(endYear), Convert.ToInt32(endMonth), 1);
var date = new DateTime(Convert.ToInt32(year), Convert.ToInt32(month), 1);
// do whatever comparisons with date, startDate and endDate
if(startDate <= date && date <= endDate)
{
}
还要注意,有很多ifs 要做DisplayList.Add(ImageList[i]);是很奇怪的。
我会尝试将其考虑在内:我到底什么时候需要将图像添加到该显示列表中?
然后使用一个if:
if(thatCondition ||
thisCondition ||
thatOtherCondition)
{
DisplayList.Add(ImageList[i]);
}
- 1 回答
- 0 关注
- 209 浏览
添加回答
举报
0/150
提交
取消