Hallo Ich habe ein Problem gelöst, um einige Bibliothekstransparenz basierend auf Differenz zwischen Rückgabedatum und Fälligkeitsdatum in C# zu berechnen. Nun gibt es einige Einschränkungen für das Problem wieCalculate datetime difference in C#
wenn die Rückkehr Jahr d geändert wird wenn die Rückkehr Jahr größer ist als das Fälligkeitsdatum Kalenderjahr dann fein ist 10000. z.B. Fälligkeitsdatum "31/12/2015" und Rückgabedatum "01.01.2016" dann auch in Ordnung ist 10000.
Wenn der Rückgabemonat geändert wird, dann ist in Ordnung 500 * Anzahl der Monate zu spät.
Wenn der Rückkehrtag geändert wird, dann ist die Strafe 15 * Anzahl der Tage zu spät.
sonst in Ordnung ist 0.
Jetzt i die Funktion unten geschrieben:
static int CalcFine (int[] returnedOn, int[] dueOn) {
int returnD = returnedOn[0];
int returnM = returnedOn[1];
int returnY = returnedOn[2];
int dueD = dueOn[0];
int dueM = dueOn[1];
int dueY = dueOn[2];
if (returnY > dueY) {
return 10000;
} else if (returnY < dueY) {
return 0;
} else {
if (returnM > dueM) {
return (returnM - dueM) * 500;
} else if (returnM < dueM) {
return 0;
} else {
if (returnD > dueD) {
return (returnD - dueD) * 15;
} else {
return 0;
}
}
}
}
ich über die Datetime-Klasse in C# lesen, die recht ordentlich funktioniert hat, die den Unterschied in zwei Daten zurück, wie Gesamttage, Gesamtminuten, usw. Aber angesichts der Einschränkung von Fein basierend auf Jahr, Monat und Tagen, bin ich nicht sicher, ob es andere eingebaute Funktion zur Lösung des oben genannten Problems gibt. Kurz gesagt versuche ich herauszufinden, ob es noch einen einfachen Weg gibt, das obige Problem zu lösen, ohne so viele if-else zu verwenden.
Das sieht aus wie die Hackerrank Frage aus 30-Tage-Code. Die 'DateTime'-Klasse ist mehr als ausreichend, um dieses Problem anzugehen. Woher weiß ich das? Weil ich es benutzt habe, um das zu lösen. – Tdorno
Was ist, wenn Tag, Monat und Jahr alle geändert werden? Es ist möglich. – Saleem
Sind die Parameter auch auf zwei int-Arrays beschränkt? –