You are viewing a single comment's thread. Return to all comments →
internal class BookReturn { public DateTime ReturnedOn { get; set; } public DateTime DueOn { get; set; } public BookReturn(string returnedOn, string dueOn) { var returnedOnValues = returnedOn.Split(" ").Select(ch => int.Parse(ch)).ToArray(); var dueOnValues = dueOn.Split(" ").Select(ch => int.Parse(ch)).ToArray(); ReturnedOn = new DateTime(returnedOnValues[2], returnedOnValues[1], returnedOnValues[0]); DueOn = new DateTime(dueOnValues[2], dueOnValues[1], dueOnValues[0]); } public BookReturn(int d1, int m1, int y1, int d2, int m2, int y2) { ReturnedOn = new DateTime(y1, m1, d1); DueOn = new DateTime(y2, m2, d2); } public bool IsLateWithinSameYear => ReturnedOn.Year == DueOn.Year; public bool IsLateWithinSameMonth => IsLateWithinSameYear && ReturnedOn.Month == DueOn.Month; public bool IsLateMoreThanAYear => ReturnedOn.Year != DueOn.Year; public bool IsReturnedOnTime => ReturnedOn.Date <= DueOn.Date; public int LateFee => Math.Abs(CalculateFee()); private int CalculateFee() { if (IsReturnedOnTime) return 0; if (IsLateWithinSameMonth) { return 15 * (DueOn.Date - ReturnedOn.Date).Days; } if (IsLateWithinSameYear) { return 500 * (DueOn.Month - ReturnedOn.Month); } if (IsLateMoreThanAYear) { return 10000; } return 0; } }
Seems like cookies are disabled on this browser, please enable them to open this website
Library Fine
You are viewing a single comment's thread. Return to all comments →