я работаю над алгоритмом в C#, чтобы вычислить прошлое DateTime на основе входной строки со следующими характеристиками:Расчет прошлых DateTime в C#
Строка содержит целое число, за которым следует либо «D», «M» или «Y», например «1D» или «90M».
Выход будет DateTime.Now минус соответствующее количество дней, месяцев или лет.
Проблема, с которой я столкнулась, заключается в том, что, например, я переключаю строку ввода в Regex (D, M или Y) и вычитаю соответствующий TimeSpan из DateTime.Now, новый конструктор TimeSpan() не принимает месяцев или лет, только дней.
if (new Regex(@"[0-9]+D").IsMatch(value))
{
newDate = DateTime.Now - TimeSpan(Int32.Parse(value.Replace("D", "")), 0, 0);
}
Эта логика хорошо, если входная строка в дни, но конструктор TimeSpan не принимает месяцы или года, и это было бы невероятно неточным, если я предполагал, каждый месяц имел 30 дней, или каждый год имел 365 дней.
У кого-нибудь есть мысли о том, как реализовать этот алгоритм?
Спасибо!
У _you_ есть мысли о том, как его реализовать? Потому что до сих пор ваша техника выглядит так: «спросите о SO, и, возможно, кто-то сделает это за меня». Расскажите, что вы уже пробовали! –