Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

================================================================== import java.util.Scanner; public class Hex2Dec { private String hex;// NULL public Hex2Dec(String hexStr){ hex = hexStr.toUpperCase(); } // accessor or get method for member

==================================================================

import java.util.Scanner; public class Hex2Dec { private String hex;// NULL public Hex2Dec(String hexStr){ hex = hexStr.toUpperCase(); } // accessor or get method for member variable hex public String getHex(){return hex;} // mutator or set method for member variable hex public void setHex(String newHex){hex = newHex.toUpperCase();} private int hexToDecimal() { int decimalValue = 0; for (int i = 0; i < hex.length(); i++) { char hexChar = hex.charAt(i); decimalValue = decimalValue * 16 + hexCharToDecimal(hexChar); } return decimalValue; }

public int hexCharToDecimal(char ch) { if (ch >= 'A' && ch <= 'F') return 10 + ch - 'A'; else if (ch >= '0' && ch <= '9'){// ch is '0', '1', ..., or '9' return ch - '0'; } return 0; } @Override public String toString(){ return "Hex: " + hex + "; Decimal: " + hexToDecimal(); } public static void main(String[] args) { // Create a Scanner Scanner input = new Scanner(System.in); // Prompt the user to enter a string System.out.print("Enter a hex number: "); String hex = input.nextLine(); Hex2Dec hd = new Hex2Dec(hex); System.out.println("The decimal value for hex number " + hex + " is " + hd.hexToDecimal()); System.out.print("Enter a hex number again: "); hd.setHex(input.nextLine()); System.out.println(hd); } }

====================================================================

mport java.util.Scanner;

public class PrintCalendar { /** Main method * @param args */ public static void main(String[] args) { Scanner input = new Scanner(System.in);

// Prompt the user to enter year System.out.print("Enter full year (e.g., 2001): "); int year = input.nextInt();

// Prompt the user to enter month System.out.print("Enter month in number between 1 and 12: "); int month = input.nextInt();

// Print calendar for the month of the year printMonth(year, month); }

/** Print the calendar for a month in a year * @param year * @param month */ public static void printMonth(int year, int month) { // Print the headings of the calendar printMonthTitle(year, month);

// Print the body of the calendar printMonthBody(year, month); }

/** Print the month title, e.g., May, 1999 * @param year * @param month */ public static void printMonthTitle(int year, int month) { System.out.println(" " + getMonthName(month) + " " + year); System.out.println("-----------------------------"); System.out.println(" Sun Mon Tue Wed Thu Fri Sat"); }

/** Get the English name for the month * @param month * @return */ public static String getMonthName(int month) { String monthName = ""; switch (month) { case 1 -> monthName = "January"; case 2 -> monthName = "February"; case 3 -> monthName = "March"; case 4 -> monthName = "April"; case 5 -> monthName = "May"; case 6 -> monthName = "June"; case 7 -> monthName = "July"; case 8 -> monthName = "August"; case 9 -> monthName = "September"; case 10 -> monthName = "October"; case 11 -> monthName = "November"; case 12 -> monthName = "December"; }

return monthName; }

/** Print month body * @param year * @param month */ public static void printMonthBody(int year, int month) { // Get start day of the week for the first date in the month int startDay = getStartDay(year, month);

// Get number of days in the month int numberOfDaysInMonth = getNumberOfDaysInMonth(year, month);

// Pad space before the first day of the month int i = 0; for (i = 0; i < startDay; i++) System.out.print(" ");

for (i = 1; i <= numberOfDaysInMonth; i++) { System.out.printf("%4d", i);

if ((i + startDay) % 7 == 0) System.out.println(); }

System.out.println(); }

/** Get the start day of month/1/year * @param year * @param month * @return */ public static int getStartDay(int year, int month) { final int START_DAY_FOR_JAN_1_1800 = 3; // Get total number of days from 1/1/1800 to month/1/year int totalNumberOfDays = getTotalNumberOfDays(year, month);

// Return the start day for month/1/year return (totalNumberOfDays + START_DAY_FOR_JAN_1_1800) % 7; }

/** Get the total number of days since January 1, 1800 * @param year * @param month * @return */ public static int getTotalNumberOfDays(int year, int month) { int total = 0;

// Get the total days from 1800 to 1/1/year for (int i = 1800; i < year; i++) if (isLeapYear(i)) total = total + 366; else total = total + 365;

// Add days from Jan to the month prior to the calendar month for (int i = 1; i < month; i++) total = total + getNumberOfDaysInMonth(year, i);

return total; }

/** Get the number of days in a month * @param year * @param month * @return */ public static int getNumberOfDaysInMonth(int year, int month) { if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) return 31;

if (month == 4 || month == 6 || month == 9 || month == 11) return 30;

if (month == 2) return isLeapYear(year) ? 29 : 28;

return 0; // If month is incorrect }

/** Determine if it is a leap year * @param year * @return */ public static boolean isLeapYear(int year) { return year % 400 == 0 || (year % 4 == 0 && year % 100 != 0); } }

******************************************************************************************************************

Question:

Redesign PrintCalendar classes in the form of Hex2Dec class above.

******************************************************************************************************************

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Modern Database Management

Authors: Jeffrey A. Hoffer Fred R. McFadden

9th Edition

B01JXPZ7AK, 9780805360479

More Books

Students also viewed these Databases questions

Question

=+ Why have these changes occurred?

Answered: 1 week ago

Question

=+90 percent of all oil refineries) into several smaller companies

Answered: 1 week ago