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

Write a JAVA program called ZodiacFinder.java that takes two integers as input (

ID: 3789816 • Letter: W

Question

Write a JAVA program called ZodiacFinder.java that takes two integers as input (month and day) and prints the Zodiac sign corresponding to the month (1 = January, 12 = December) and the day (1 - 31).

Use a method (called userInput() )for user input – use one method to input an integer called twice – but, prompt the user for the appropriate data item. Error trap your user – the user can enter a month between 1 and 12, the user can only enter a day between 1 and 31.

Use a method (called determineZodiac () ) to determine and return the Zodiac sign.

Use a method (called displayAll () ) to display the month, day and the corresponding Zodiac sign

Explanation / Answer


// ZodiacFinder.java

import java.util.Scanner;

public class ZodiacFinder
{

public static int userInput(int limit)
{
Scanner sc = new Scanner(System.in);
int input;

while(true)
{
input = sc.nextInt();

if(input >= 1 && input <= limit)
break;
else
System.out.print("value should be 1-" + limit + " ");
System.out.print("Enter again: ");
}
  
return input;
}

public static String determineZodiac(int day, int month)
{
if ((month == 12 && day >= 22 && day <= 31) || (month == 1 && day >= 1 && day <= 19))
return "Capricorn";
else if ((month == 1 && day >= 20 && day <= 31) || (month == 2 && day >= 1 && day <= 17))
return "Aquarius";
else if ((month == 2 && day >= 18 && day <= 29) || (month == 3 && day >= 1 && day <= 19))
return "Pisces";
else if ((month == 3 && day >= 20 && day <= 31) || (month == 4 && day >= 1 && day <= 19))
return "Aries";
else if ((month == 4 && day >= 20 && day <= 30) || (month == 5 && day >= 1 && day <= 20))
return "Taurus";
else if ((month == 5 && day >= 21 && day <= 31) || (month == 6 && day >= 1 && day <= 20))
return "Gemini";
else if ((month == 6 && day >= 21 && day <= 30) || (month == 7 && day >= 1 && day <= 22))
return "Cancer";
else if ((month == 7 && day >= 23 && day <= 31) || (month == 8 && day >= 1 && day <= 22))
return "Leo";
else if ((month == 8 && day >= 23 && day <= 31) || (month == 9 && day >= 1 && day <= 22))
return "Virgo";
else if ((month == 9 && day >= 23 && day <= 30) || (month == 10 && day >= 1 && day <= 22))
return "Libra";
else if ((month == 10 && day >= 23 && day <= 31) || (month == 11 && day >= 1 && day <= 21))
return "Scorpio";
else if ((month == 11 && day >= 22 && day <= 30) || (month == 12 && day >= 1 && day <= 21))
return "Sagittarius";
else
return "Illegal date";

}

public static void displayAll(int month,int day, String zodiacSign)
{
if(zodiacSign.equals("Illegal date"))
System.out.println("No zodiac sign found for give day and month ");
else
System.out.println(" Day: " + day + " Month: " + month + " Zodiac Sign: " + zodiacSign);
}

public static void main(String[] args)
{
System.out.print("Enter month: ");
int month = userInput(12);
System.out.print("Enter day: ");
int day = userInput(31);

String zodiacSign = determineZodiac(day,month);

displayAll(month,day,zodiacSign);

}

}

/*
output:

Enter month: 31
value should be 1-12
Enter again: 12
Enter day: 31

Day: 31
Month: 12
Zodiac Sign: Capricorn


*/

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