estoy trabajando en un algoritmo en C# para calcular un pasado DateTime basado en una cadena de entrada con las siguientes características:Cálculo de fecha y hora pasado en C#
La cadena contiene un número entero seguido de 'D', 'M' o 'Y', como "1D" o "90M".
La salida será DateTime.Now menos el número correspondiente de días, meses o años.
El problema que estoy teniendo es que, por ejemplo, cambio la cadena de entrada en un Regex (D, M o Y) y restar el TimeSpan correspondiente de DateTime.Now, el nuevo constructor TimeSpan() no acepta meses o años, solo días.
if (new Regex(@"[0-9]+D").IsMatch(value))
{
newDate = DateTime.Now - TimeSpan(Int32.Parse(value.Replace("D", "")), 0, 0);
}
Esta lógica está bien si la cadena de entrada es de día, pero el constructor para TimeSpan no acepta meses o años, y sería muy inexacta si asumido cada mes tenía 30 días, o cada año tenía 365 dias.
¿Alguien tiene ideas sobre cómo implementar este algoritmo?
Gracias!
¿Tiene alguna idea sobre cómo implementarla? Porque hasta ahora, su técnica parece: "pregúntale a SO y quizás alguien lo haga por mí". Cuéntanos lo que has intentado ya! –