Library Fine

Your local library needs your help! Given the expected and actual return dates for a library book, create a program that calculates the fine (if any). The fee structure is as follows:

1.If the book is returned on or before the expected return date, no fine will be charged (i.e.: .

2.If the book is returned after the expected return day but still within the same calendar month and year as the expected return date, .

3.If the book is returned after the expected return month but still within the same calendar year as the expected return date, the .

4.If the book is returned after the calendar year in which it was expected, there is a fixed fine of .

Charges are based only on the least precise measure of lateness. For example, whether a book is due January 1, 2017 or December 31, 2017, if it is returned January 1, 2018, that is a year late and the fine would be .


Example:

Input:  d1=9,m1=6,y1=2015,d2=6,m2=6,y2=2015
Output: 45

Approach

C++

#include <bits/stdc++.h>
using namespace std;

int libraryFine(int d1int m1int y1int d2int m2int y2)
{
    int fine;
    if (y1 < y2)
        return 0;
    if ((y1 - y2) == 0)
    {
        if (m1 < m2)
            return 0;
        if ((m1 - m2) == 0)
        {
            if (d1 - d2 <= 0)
                fine = 0;
            else
                fine = 15 * (d1 - d2);
        }
        else
        {
            fine = 500 * (m1 - m2);
        }
    }
    else
        fine = 10000;
    return fine;
}

int main()
{

    int d1 = 9, m1 = 6,y1 = 2015;
    int d2 = 6, m2 = 6, y2 = 2015;
    cout << libraryFine(d1, m1, y1, d2, m2, y2);
    return 0;
}


No comments:

Post a Comment