【发布时间】:2010-03-01 20:58:16
【问题描述】:
我正在研究 C# 中的算法,以根据具有以下特征的输入字符串计算过去的 DateTime:
字符串包含一个整数,后跟“D”、“M”或“Y”,例如“1D”或“90M”。
输出将是 DateTime.Now 减去相应的天数、月数或年数。
我遇到的问题是,例如,如果我在正则表达式(D、M 或 Y)上切换输入字符串并从 DateTime.Now 中减去相应的 TimeSpan,则新的 TimeSpan() 构造函数不接受月份或年,只有几天。
if (new Regex(@"[0-9]+D").IsMatch(value))
{
newDate = DateTime.Now - TimeSpan(Int32.Parse(value.Replace("D", "")), 0, 0);
}
如果输入字符串以天为单位,这个逻辑很好,但是 TimeSpan 的构造函数不接受月或年,如果我假设每个月有 30 天,或者每年有 365 天,那将是非常不准确的。
有人对如何实现这个算法有想法吗?
谢谢!
【问题讨论】:
-
你对如何实现它有任何想法吗?因为到目前为止,您的技术看起来像:“问 SO,也许有人会为我做”。告诉我们您已经尝试过什么!