Wednesday , 21 October 2020
Home » Class 12 » [Question 1] ISC 2019 Computer Practical Paper Solved – Future Date

[Question 1] ISC 2019 Computer Practical Paper Solved – Future Date

Click here to download the complete ISC 2019 Computer Science Paper 2 (Practical).


Question:

Design a program to accept a day number (between 1 and 366), year (in 4 digits) from the user to generate and display the corresponding date. Also, accept ‘N’ (1 <= N <= 100) from the user to compute and display the future date corresponding to ‘N’ days after the generated date. Display an error message if the value of the day number, year and N are not within the limit or not according to the condition specified.

Test your program with the following data and some random data:

Example 1

INPUT:
DAY NUMBER: 255
YEAR: 2018
DATE AFTER (N DAYS): 22

OUTPUT:
DATE: 12 TH SEPTEMBER, 2018
DATE AFTER 22 DAYS: 4 TH OCTOBER, 2018

Example 2

INPUT:
DAY NUMBER: 360
YEAR: 2018
DATE AFTER (N DAYS): 45

OUTPUT:
DATE: 26 TH DECEMBER, 2018
DATE AFTER 45 DAYS: 9 TH FEBRUARY, 2019

Example 3

INPUT:
DAY NUMBER: 500
YEAR: 2018
DATE AFTER (N DAYS): 33

OUTPUT:
DAY NUMBER OUT OF RANGE.

Example 4

INPUT:
DAY NUMBER: 150
YEAR: 2018
DATE AFTER (N DAYS): 330

OUTPUT:
DATE AFTER (N DAYS) OUT OF RANGE.


Programming Code:

/**
  * The class ISC2019_Q1 inputs a day number, year and number of days after
  * and prints the current date and the future date
  * @author : www.guideforschool.com 
  * @Program Type : BlueJ Program - Java
  * @Question Year : ISC Practical 2019 Question 1 
  */
import java.util.*;
class ISC2019_Q1
{
    int isLeap(int y) //function to check for leap year and return max days
    {
        if((y%400 == 0) || (y%100 != 0 && y%4 == 0))
            return 366;
        else
            return 365;
    }

    String postfix(int n) //function to find postfix of the number
    {
        int r = n%10;
        if(r == 1 && n != 11)
            return "ST";
        else if(r == 2 && n != 12)
            return "ND";
        else if(r == 3 && n != 13)
            return "RD";
        else
            return "TH";
    }

    void findDate(int d, int y) //function to find the date from day number
    {
        int D[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
        String MO[] = {"", "JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE", "JULY",
                          "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER"};
        if(isLeap(y)==366)
        {
            D[2] = 29;
        }
        int m = 1;
        while(d > D[m])
        {
            d = d - D[m];
            m++;
        }
        System.out.println(d+postfix(d)+" "+MO[m]+", "+y);
    }
    
    void future(int d, int y, int n) //function to find future date
    {
        int max = isLeap(y);
        d = d + n;
        if(d>max)
        {
            d = d - max;
            y++; 
        }
        findDate(d,y); 
    }
    
    public static void main(String args[])
    {
        ISC2019_Q1 ob = new ISC2019_Q1();
        Scanner sc = new Scanner(System.in);
        System.out.print("Enter the day number : ");
        int day = sc.nextInt();
        System.out.print("Enter the year : ");
        int year = sc.nextInt();
        int max = ob.isLeap(year);
        if(day > max)
        {
            System.out.println("DAY NUMBER OUT OF RANGE");
        }
        else if(year<1000 || year>9999)
        {
            System.out.println("YEAR OUT OF RANGE");
        }
        else
        {
            System.out.print("Enter the number of days after : ");
            int n = sc.nextInt();
            if(n<1 || n>100)
            {
                System.out.println("DATE AFTER (N DAYS) OUT OF RANGE");
            }
            else
            {
                System.out.print("DATE :\t\t\t");
                ob.findDate(day,year);
                System.out.print("DATE AFTER "+n+" DAYS :\t");
                ob.future(day,year,n);
            }
        }
    }       
}

Output:

Enter the day number : 360
Enter the year : 2019
Enter the number of days after : 80
DATE : 26TH DECEMBER, 2019
DATE AFTER 80 DAYS : 15TH MARCH, 2020

Check Also

[Question 1] ISC 2020 Computer Practical Paper Solved – Prime Adam Number

Solution of Program 1 of ISC 2020 Computer Science Paper 2 (Practical) Exam. Java program to print the Prime Adam numbers within a given range.

Leave a Reply

Your email address will not be published. Required fields are marked *