有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java:设计并实现在程序中实现星期几的课程日

这个问题我已经被问过好几次了,但都没有涉及到我的具体问题。我觉得我真的很快就要完成了。我会把整个问题和我的代码贴在下面。我遇到的问题是,当我选择星期天(这是一周的第一天)作为我的开始日时,它不知道如何回到上一周的星期六。此外,天数的增加似乎也不正常。寻找一些关于如何让它工作的提示。代码编译并运行,只是我的代码没有达到我想要的效果。问题是,当我使用代码的测试选项时,一切似乎都正常工作,我就是无法让它与用户输入的数据一起工作

完整的问题是:在程序中设计并实现实现星期一的上课日。上课日应存储当天,如周日的太阳。该程序应能在Day类型的对象上执行以下操作:

A.设定日期

B.打印日期

C.当天返回

D.第二天回来

E.前一天返回

F.通过将特定天数添加到当天来计算并返回当天。例如,如果当前日期是星期一,加上四天,则返回的日期是星期五。同样,如果今天是星期二,加上13天,返回的日期是星期一

G.添加适当的构造函数

H.根据A到G中的定义,编写实现上课日操作的方法的定义

I.编写一个程序,在上课日测试各种操作

代码:

import java.util.*;

public class Day 
{
private static final int SUNDAY = 0;
private static final int MONDAY = 1;
private static final int TUESDAY = 2;
private static final int WEDNESDAY = 3;
private static final int THURSDAY = 4;
private static final int FRIDAY = 5;
private static final int SATURDAY = 6;

static Scanner keyboard = new Scanner(System.in);

public static void main(String[] args)
{
    Day dy = new Day(Day.WEDNESDAY);
    int choice;

    do
    {
        System.out.println("Welcome, to my final project please select 
                            an option.\n");

        menu2();
        choice = keyboard.nextInt();
        System.out.println();

        switch (choice)
        {
        case 1:

            do 
            {
                menu1();
                choice = keyboard.nextInt();
                System.out.println();
                switch (choice)
                {
                case 1:
                    day = SUNDAY;
                    break;
                case 2:
                    day = MONDAY;
                    break;
                case 3:
                    day = TUESDAY;
                    break;
                case 4:
                    day = WEDNESDAY;
                    break;
                case 5:
                    day = THURSDAY;
                    break;
                case 6:
                    day = FRIDAY;
                    break;
                case 7:
                    day = SATURDAY;
                    break;
                case 99:
                    System.exit(0);
                    break;

                default:
                    System.out.println("Invalid Input");

                }

                System.out.print("The day you selected as your starting 
                         day is: ");
                dy.print();
                System.out.println();

                System.out.print("The next day to your selected day is: ");
                dy.setDay(dy.getNextDay());
                dy.print();
                System.out.println();

                System.out.print("The previous day to your selected 
                      day is: ");
                dy.setDay(dy.getPreviousDay());
                dy.setDay(dy.getPreviousDay());
                dy.print();
                System.out.println();

                System.out.print("How many days would you like to add? ");


                int days = keyboard.nextInt();
                dy.setDay(days);
                System.out.print("\nAdding " + days + " day(s) makes your
                     new day: ");
                dy.print();
                System.out.println();




            }
            while (choice != 99);

            break;

        case 2:
            System.out.println("Test Data For Day Class");

            System.out.print("\nInitial day: ");
            dy = new Day(Day.SUNDAY);
            dy.print();

            System.out.print("\nNext day: ");
            dy.setDay(dy.getNextDay());
            dy.print();

            System.out.print("\nAdd 12 Days: ");
            dy.setDay(dy.addDays(12));
            dy.print();

            System.out.print("\nPrevious day: ");
            dy.setDay(dy.getPreviousDay());
            dy.print();

            System.out.print("\nAdd 3 days: ");
            dy.setDay(dy.addDays(3));
            dy.print();
            System.out.println("\n\n");

            break;

        case 99:
            System.exit(0);
            break;

            default:
                System.out.println("Invalid Input");
        }

    }
    while (choice != 99);
}

public static void menu1()
{
    System.out.println("Please Select Your Initial Day (or 99 to quit):");
    System.out.println(" 1: Sunday.");
    System.out.println(" 2: Monday.");
    System.out.println(" 3: Tuesday.");
    System.out.println(" 4: Wednesday.");
    System.out.println(" 5: Thursday.");
    System.out.println(" 6: Friday.");
    System.out.println(" 7: Saturday.");
    System.out.println("99: To quit the program.");
}

public static void menu2()
{
    System.out.println("Enter: ");
    System.out.println("1: To Enter Data into the program.");
    System.out.println("2: For Test Data.");
    System.out.println("99: To quit the program.");
}




  //Stores the day 

public static int day;


  //Set the day.

 public void setDay(int day) 
{
    this.day = day;
}


 //Print the day

public void print() 
{
    System.out.println(this.toString());
}


 //Return the day.

public int getDay() 
{
    return day;
}


  //Return the next day.

public int getNextDay() {
    return (day + 1) % 7;
}

@Override
public String toString() {
    switch (Day.day) {
    case SUNDAY:
        return "Sunday";
    case MONDAY:
        return "Monday";
    case TUESDAY:
        return "Tuesday";
    case WEDNESDAY:
        return "Wednesday";
    case THURSDAY:
        return "Thursday";
    case FRIDAY:
        return "Friday";
    case SATURDAY:
        return "Saturday";
    }
    return "";
}


  //Return the previous day.

public int getPreviousDay() 
{
    if (day = 0)
            return (day + 6) % 7;
    else
        return (day - 1) % 7;
}


 //Calculate and return the day by adding days

public int addDays(int days) 
{
    return (day + days) % 7;
}


   //Add the constructors.

public Day() 
{
    this.day = SUNDAY;
}

public Day(int day)
{
    this.day = day;
}
}

共 (0) 个答案