Buenas, espero que se encuentren bien.
Como lo dice en el asunto, necesito un poco de orientación en cuanto a un código que me ha costado bastante ver como funciona e igualmente a programarlo:
if (Year_2 > Year || Year > Year_2){
DateMinus = (Day - Day_2) - ((Month - Month_2) + 30) - (((Year - Year_2) * 365));
if (DateMinus < 0){
DateMinus *= -1;
}
}else if (Year == Year_2){
DateMinus = (Day - Day_2) - ((Month - Month_2) * 30);
}
Algo raro que he notado es que aveces se pasa de la fecha por unos días (16, por ejemplo) o algunas veces faltan, por lo que he visto, suele pasar cuando son fechas grandes en momentos donde faltan días, y no he notado un "patrón" claro en el caso de que se pasen días.
Una cosa es que este es un ejercicio de programación que estoy siguiendo, y el anunciado aclara que se debe de suponer que todos los meses tienen 30 días, soy consiente de eso, pero no creo que esa sea la razón del porqué falten 15 días o incluso se pase por casi 34 días. Lamentablemente, me vi forzado a ver la respuesta del ejercicio, ya que no comprendía que pasaba, y según la fórmula, es esta:
total_dias = dia2-dia1 + 30*(mes2-mes1)+365*(año2-año1);
Por la gran decepción al ver la respuesta, y no verme capaz de hacerlo por mi parte, quise "crear" una nueva fórmula con base en lo que vi.