在我的项目中,我将所有日期以字符串的形式保存在数据库中,例如“07/26/2013”。但是现在,出现了一种情况,我需要检索两个日期,然后检查这两个日期之间的月份开始和结束月份。
例如:如果开始日期是 01/01/2013,结束月份是 05/01/2013,我应该得到类似 {"Jan", "Feb", "Mar", "Apr", "May"} 的答案或{“01”、“02”、“03”、“04”、“05”}。我尝试了集合,但收到超出范围的错误索引。任何帮助表示赞赏!
谢谢!萨拉。
在我的项目中,我将所有日期以字符串的形式保存在数据库中,例如“07/26/2013”。但是现在,出现了一种情况,我需要检索两个日期,然后检查这两个日期之间的月份开始和结束月份。
例如:如果开始日期是 01/01/2013,结束月份是 05/01/2013,我应该得到类似 {"Jan", "Feb", "Mar", "Apr", "May"} 的答案或{“01”、“02”、“03”、“04”、“05”}。我尝试了集合,但收到超出范围的错误索引。任何帮助表示赞赏!
谢谢!萨拉。
我想有一种更简单的方法可以用 Linq 做到这一点,但是一个简单的循环就可以完成这项工作:
DateTime start = DateTime.Parse(startString);
DateTime end = DateTime.Parse(endString);
List<string> months = new List<string>();
while (start.Month <= end.Month)
{
months.Add(start.ToString("MMM"));
start = start.AddMonths(1);
}
string output = string.Join(",", months.ToArray());
有关通过 ToString() 格式化月份输出的信息,请参阅此 MSDN 页面:http: //msdn.microsoft.com/en-us/library/zdtaw1bw.aspx
这需要您的日期之一并将其转换为正确的字符串。获得一个月不是问题,我猜你是因为日期在计算机上转换为字符串和从字符串转换为冲突而弄错了。
string date1 = "05/01/2013";
DateTime date = Convert.ToDateTime(date1, System.Globalization.CultureInfo.InvariantCulture);
MessageBox.Show(date.ToString());