有人能给我指出java数学的正确方向吗?
我正在试图解决一个问题,我必须创建一个程序,该程序将调用一周中的几天,打印出所选日期的前一天和后一天,并返回添加的日期,因此,如果用户选择星期日,该程序将返回星期六作为前一天,星期一作为后一天,以及添加到控制台中的第x天金额。我完全迷路了,我需要任何建议。。。到目前为止,我掌握的代码是:有人能给我指出java数学的正确方向吗?,java,Java,我正在试图解决一个问题,我必须创建一个程序,该程序将调用一周中的几天,打印出所选日期的前一天和后一天,并返回添加的日期,因此,如果用户选择星期日,该程序将返回星期六作为前一天,星期一作为后一天,以及添加到控制台中的第x天金额。我完全迷路了,我需要任何建议。。。到目前为止,我掌握的代码是: import java.util.Scanner; public final class MurphyW8Day { private int murphingDay; private St
import java.util.Scanner;
public final class MurphyW8Day {
private int murphingDay;
private String namedDay;
@Override
public String toString() {
return (namedDay);
}
public void setDay(int murphingDay) {
if (murphingDay == 0)
namedDay = "Sun";
if (murphingDay == 1)
namedDay = "Mon";
if (murphingDay == 2)
namedDay = "Tue";
if (murphingDay == 3)
namedDay = "Wed";
if (murphingDay == 4)
namedDay = "Thur";
if (murphingDay == 5)
namedDay = "Fri";
if (murphingDay == 6)
namedDay = "Sat";
}
public MurphyW8Day setNameDay(String murphingDay) {
murphingDay = namedDay;
return this;
}
public void printDay() {
System.out.println(namedDay);
}
//I believe my issue is somewhere between here :
public void previousDay() {
murphingDay = (murphingDay - 1);
setDay(murphingDay);
printDay();
}
public void nextDay() {
murphingDay = (murphingDay + 1) % 7;
setDay(murphingDay);
printDay();
}
//And Here:
public void calculateDay() {
int calc;
int dayAdd;
Scanner scanner = new Scanner(System. in );
System.out.println("Enter number of days to add: ");
calc = scanner.nextInt();
dayAdd = murphingDay + (calc);
murphingDay = dayAdd % 7;
setDay(murphingDay);
printDay();
}
public MurphyW8Day() {
setDay(0);
}
public MurphyW8Day(int murphingDay) {
setDay(murphingDay);
}
public static void main(String[] args) {
// TODO code application logic here
System.out.println("What is your initial day?\nSunday\t\t=\t0\nMonday\t\t=\t1\nTuesday\t\t=\t2\nWednesday\t=\t3\nThursday\t=\t4\nFriday\t\t=\t5\nSaturday\t=\t6");
System.out.print("Enter the number:");
Scanner sc = new Scanner(System. in );
int x = sc.nextInt();
MurphyW8Day myDay = new MurphyW8Day(x);
System.out.println("");
System.out.print("The day of the week is: ");
myDay.printDay();
System.out.println();
System.out.print("The previous day is: ");
myDay.previousDay();
System.out.println();
System.out.print("The next day is: ");
myDay.nextDay();
System.out.println();
myDay.calculateDay();
System.out.println();
}
}
控制台中的输出为:
run:
What is your initial day?
Sunday = 0
Monday = 1
Tuesday = 2
Wednesday = 3
Thursday = 4
Friday = 5
Saturday = 6
Enter the number:5
The day of the week is: Fri
The previous day is: Fri
The next day is: Sun
Enter number of days to add:
5
Fri
BUILD SUCCESSFUL (total time: 6 seconds)
我想不出我错过了什么,我要去我的书和甲骨文网站。。。请阐明这一点,我只是想完成这个项目,这样我就可以在学校享受一周的假期。哈哈
提前感谢您提供的任何帮助。以下是一些建议:
MurphyW8Day
有两个字段,这两个字段在某种意义上是等价的,一个字段可以直接从另一个字段计算出来。我将删除其中一个,并根据需要添加一个计算方法。我的首选是删除namedDay
,因为从日数计算日名非常简单,事实上,您在setDay
中几乎拥有所需的代码setDay
和setNamedDay
。其中一个可以删除,我的建议是删除与(1)中删除的字段对应的字段setDay
)设置类中的字段。目前还没有,我认为这是你们当前问题的主要根源作为一个旁白,你可能想考虑把计算从输入和打印中分离出来,这样你就可以独立使用它们。
所以你有这个代码。它实际上在做什么?运行时的控制台输出结果:运行:您最初的一天是什么?星期天=0星期一=1星期二=2星期三=3星期四=4星期五=5星期六=6输入数字:5一周的日期是:星期五前一天是:星期五第二天是:星期日输入要添加的天数:5星期五构建成功(总时间:6秒)您的setDay(int)
方法实际上并没有设置murphingDay?当注释掉时,对于当前、之前和之后的星期几返回null