public int ComputeLibraryFine(LibraryDate dueDate, LibraryDate returnDate) { int fine = 0; // late year if (returnDate.year > dueDate.year) { fine = 10000; } // same year else if (returnDate.year == dueDate.year) { // late month if (returnDate.month > dueDate.month) { int diff = returnDate.month - dueDate.month; fine = 500 * diff; } // same month else { if (returnDate.day > dueDate.day) { int diff = returnDate.day - dueDate.day; fine = 15 * diff; } } } return(fine); }
protected override void ProcessDataLine(string line, int index) { int day; int month; int year; string[] data; int[] array = null; switch (index) { case 0: // data = line.Split(' '); array = Array.ConvertAll(data, s => int.Parse(s)); day = array[0]; month = array[1]; year = array[2]; returnDate = new LibraryDate(day, month, year); break; case 1: // data = line.Split(' '); array = Array.ConvertAll(data, s => int.Parse(s)); day = array[0]; month = array[1]; year = array[2]; dueDate = new LibraryDate(day, month, year); break; default: break; } }