Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I\'ve been working on this for several hours now and I\'m completely stuck. The

ID: 3537068 • Letter: I

Question

I've been working on this for several hours now and I'm completely stuck. The assignment is at the following link: http://www.cs.washington.edu/education/courses/cse142/08wi/homework/4/spec.pdf


This is the work I've done so far. I'm not sure where I'm going wrong, any help would be appreciated.


import java.util.Scanner;

public class BirthdayComparison {
    public static final int THISMONTH = 2;
    public static final int THISDAY = 1;
   
    public static void main(String[] args) {
        greeting();
        monthAndDay();
    }       
    public static void greeting() {   
        System.out.println("This program compares two birthdays");
        System.out.println("And displays which one is sooner.");
        System.out.println("Today's date is " + THISMONTH + "/" + THISDAY + "/2012" + ", day #32 of the year." );
        System.out.println("");

       
    }       
    public static void monthAndDay(){
            Scanner console = new Scanner (System.in);
            System.out.println("Person 1: ");
            System.out.print("What month and day were you born? ");
                int Month = console.nextInt();
                int Day = console.nextInt();
                absoluteDay(Month, Day);
                nextBirthday(Month, Day);
                 System.out.println();
                     System.out.println("Person 2: ");
                     System.out.print("What month and day were you born? ");
                     int Month2 = console.nextInt();
                     int Day2 = console.nextInt();
                     absoluteDay(Month2, Day2);
                     nextBirthday(Month2, Day2);
                    
                    
    }
    public static int calculateDays(int month){   
                int days;
                switch(month){   
                    case 9:
                    case 4:
                    case 6:
                    case 11: days = 30;
                         break;
                    case 2:   days = 29;
                        break;
                    default: days = 31;
                }
                return days;
    }

    public static int absoluteDay(int Month, int Day) {
        int Days = 0,i;
        for (i=1; i <Month; i++) {     
          Days += calculateDays(i);             
}            Days+=Day;
            System.out.println(Month+"/"+Day+"/2012 falls on day# "+Days+" of 366.");                       
            return Days;
}

    public static int daySetup(int Month,int Day)
    {if(Month > Day)
        return Day +(366 - Month);
    else
        return Day - Month;
}
    public static void printmessage(int Day) {
        if(Day==0)
            System.out.println("Happy Birthday");
            else if (Day==1)
                System.out.println("Wow, your birthday is tomorrow");
            else
                System.out.println("Your next birthday is in "+Day+" days: ");


    }

    public static void nextBirthday(int Month, int Day) {
        if (THISMONTH == Month && THISDAY == Day)
            System.out.println("Happy Birthday!");
        else if (THISMONTH == Month && THISDAY == Day - 1)
            System.out.println("Your birthday is tomorrow.");
        else if(THISDAY < Day && THISMONTH == Month){
            System.out.println("Your next birthday is in " + (Day - THISDAY) +" days");
        }       
        else{
            System.out.println("Your next birthday is in "+(366 - (Day - THISDAY))+" days");
   
   
    }
    }

}

               



Explanation / Answer

import java.text.DecimalFormat;

import java.util.Scanner;


public class Mukesh

{

public static final int THISMONTH = 1;

public static final int THISDAY = 29;

public static void main(String[] args)

{

greeting();

monthAndDay();

}   

public static void greeting()

{   

System.out.println("This program compares two birthdays");

System.out.println("And displays which one is sooner.");

System.out.println("Today's date is " + THISMONTH + "/" + THISDAY + "/2008" + ", day "+absoluteDay(THISMONTH,THISDAY)+" of the year." );

System.out.println("");

}   

public static void monthAndDay()

{

Scanner console = new Scanner (System.in);

System.out.println("Person 1 :");

System.out.print("What month and day were you born? ");

int Month = console.nextInt();

int Day = console.nextInt();

absoluteDay(Month, Day);

int nB1=NextBirthday(Month, Day);

if(nB1==0)

{

System.out.println("Happy Birthday!!");

}

System.out.println();

System.out.println("Person 2 :");

System.out.print("What month and day were you born? ");

int Month2 = console.nextInt();

int Day2 = console.nextInt();

absoluteDay(Month2, Day2);

int nB2=NextBirthday(Month2, Day2);   

if(nB2==0)

{

System.out.println("Happy Birthday!!");

}

BirthDaysooner(nB1,nB2);

}

public static int calculateDays(int month)

{   

int days;

if(month==1){

days=31;}

else if(month==2){

days=29;}

else if(month==3){

days=31;}

else if(month==4){

days=30;}

else if(month==5){

days=31;}

else if(month==6){

days=30;}

else if(month==7){

days=31;}

else if(month==8){

days=31;}

else if(month==9){

days=30;}

else if(month==10){

days=31;}

else if(month==11){

days=30;}

else if(month==12){

days=31;}

else

{

days=31;

}

return days;

}


public static int NextBirthday(int Month, int Day)

{   

int daysaway=daysdifference(Month,Day);

System.out.println("Your next birthday is in "+daysaway+" day(s).");

double percent= (daysaway)*100.0/366.0;

percent=(double)(Math.round(percent*10))/10;

System.out.println("That is "+percent+" percent of a year away.");

System.out.println();

return daysaway;

}


public static int absoluteDay(int Month,int Day)

{

int Days = 0,i;

for (i=1; i <Month; i++)

{   

Days += calculateDays(i);

}

Days+=Day;   

return Days;

}

  

  

public static int daysdifference(int Month,int Day)

{

int diff=0;

if(THISMONTH<Month)

{

int absDMonth=absoluteDay(Month,Day);

int absDThisMonth=absoluteDay(THISMONTH,THISDAY);

diff=absDMonth-absDThisMonth;

}

else if(THISMONTH>Month)

{

int absDMonth=absoluteDay(Month,Day);

int absDThisMonth=absoluteDay(THISMONTH,THISDAY);

diff=(366-absDThisMonth)+absDMonth;

}

else

{

if(THISDAY<Day)

{

diff=Day-THISDAY;

}

else if(THISDAY>Day)

{

int absDMonth=absoluteDay(Month,Day);

int absDThisMonth=absoluteDay(THISMONTH,THISDAY);

diff=(366-absDThisMonth)+absDMonth;

}

}

return diff;

}

public static void BirthDaysooner(int nb1,int nb2)

{

if(nb1>nb2)

{

System.out.println("Person 2's birthday is sooner.");

}

else if(nb2>nb1)

{

System.out.println("Person 1's birthday is sooner.");

}

else

{

System.out.println("Wow, you share the same birthday!");

}

}


  

}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote