示例#1
0
        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);
        }
示例#2
0
        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;
            }
        }