Hello. I've hit a brick wall on an assignment for class. I've included the instructions and what I have gotten so far. My major problem is converting the number for days of the week to the actual day. Any help will be greatly appreciated. Thanks!

Insert code into the Clock class to enable it to perform the necessary functions. You may add as many additional methods and/or attributes you deem necessary. The driver class ClockDriver is already provided - test the performance (and output) of the Clock class using the ClockDriver class.

The following is a sample output based on the numeric values used in main() in the attached sample ClockDriver class. Please check your program's output by using different numeric values in main():

run:
Thursday, 12:00 pm

Thursday, 2:30 pm

Friday, 12:15 am

Friday, 12:15 am

Thursday, 2:30 pm

Saturday, 2:30 pm

BUILD SUCCESSFUL (total time: 0 seconds)

package clockdriver;

/**
 *
 * @author 
 */
public class ClockDriver {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Clock MyClock = new Clock("Thursday", 12,0); // Instantiate a clock object

	System.out.println(MyClock); // Should display: Thursday, 12:00 p.m.
        System.out.println(); // print blank line

        MyClock.advance(150); // advance time 150 minutes (2 hours 30 minutes)
	System.out.println(MyClock); // Should display: Thursday, 2:30 p.m.
        System.out.println();

        MyClock.advance(585); // advance time by 585 minutes (9 hours 45 minutes)
	System.out.println(MyClock); // Should display: Friday, 12:15 a.m.
        System.out.println();

        MyClock.advance(10080); // advance time by 10080 minutes (7 days)
	System.out.println(MyClock); // Should display: Friday, 12:15 a.m.
        System.out.println();

        MyClock.reverse(585); // reverse time by 585 minutes (9 hours 45 minutes)
	System.out.println(MyClock); // Should display: Thursday, 2:30 p.m.
        System.out.println();

        MyClock.reverse(17280); // reverse time by 17280 minutes (12 days)
	System.out.println(MyClock); // Should display: Saturday, 2:30 p.m.
        System.out.println();
        
    } // end of main

} // end of class ClockDriver
class Clock{
    /***************************************************************
     * Objects of this class represent time (in hours and minutes) *
     * The time data is stored in 24 hour (HHMM military format)   *
     ***************************************************************/
    private int day_of_week; // valid range of values is 1 thru' 7
    private int hours; // range of values is 0 thru' 23
    private int minutes; // range of values is 0 thru' 59

    public Clock(String s, int h, int m){
        day_of_week=5;
        hours=0;
        minutes=0;
    }

    public void advance(int m){
        int totalminutes = (hours*60)+(minutes+m);
        day_of_week=totalminutes%8;
        hours = (totalminutes/60)%24;
        minutes=totalminutes%60;
    }

    public void reverse(int m){
	int totalminutes = (hours*60)-(minutes-m);
        day_of_week=totalminutes%8;
        hours = (totalminutes%24)/60;
        minutes=totalminutes%60;
    }

    @Override
    public String toString(){
       
        String S = + day_of_week + ", " +
                (hours>12? hours-12 : hours<1? 12 : hours) +
                ":" + (minutes<10? ("0"+minutes) : minutes) +
                (hours>=12? " pm" : " am");

        return (S);

          }
    }
This article has been dead for over six months. Start a new discussion instead.