0
私はすべてのコードを書いたが、何か不足している。特定の曜日を出力するために一緒に働く2つのクラスです。私は何か愚かな何かをしていることを知っている、助けを歓迎するJAVA:間違った返信を返す
基本的に、2つの出力が正しく、2が間違っています。間違っている二人は、前の日であり、翌日、代わりに正しい答えを得るための、私は、たとえば、Monday1またはTuesday6を取得しています:
このクラスを呼び出しimport java.util.*;
public class DaysOfTheWeek
{
static Scanner console = new Scanner(System.in);
public static void main(String[] args)
{
String currentDayOfTheWeek;
String dayOfTheWeek;
int dayToFind;
System.out.println("Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday");
System.out.print("Enter a day of the week: ");
currentDayOfTheWeek = console.nextLine();
Day newDay = new Day(currentDayOfTheWeek);
newDay.printTheDay();
dayOfTheWeek = newDay.getThePreviousDay(currentDayOfTheWeek);
System.out.println();
System.out.print("The PREVIOUS day from '" + currentDayOfTheWeek + "' ");
System.out.print("is '" + dayOfTheWeek + "' \n");
dayOfTheWeek = newDay.getTheNextDay(currentDayOfTheWeek);
System.out.println();
System.out.print("The NEXT day from '" + currentDayOfTheWeek + "' ");
System.out.print("is '" + dayOfTheWeek + "' \n");
System.out.println();
System.out.println("How many days in the future from '" + currentDayOfTheWeek +"' \n");
System.out.print("Do you want (0 - 31)?: ");
dayToFind = console.nextInt();
if (validateDay(dayToFind) == true)
{
dayOfTheWeek = newDay.getTheFutureDay(currentDayOfTheWeek, dayToFind);
System.out.println();
System.out.print(dayToFind + " days from '" + currentDayOfTheWeek + "' ");
System.out.print("is '" + dayOfTheWeek + "' \n");
}
else {
System.out.println();
System.out.println("Invalid Day '" + dayToFind + "'. Entered day must be between 0 and 31");
}
}
public static boolean validateDay(int dayToFind)
{
boolean validDay;
if ((dayToFind < 0) || (dayToFind > 31))
validDay = false;
else
validDay = true;
return validDay;
}
public class day {
}
}
:
public class Day
{
private String[] daysArray = {"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};
private String dayOfTheWeek;
public Day()
{
dayOfTheWeek = "";
}
public Day(String whichDay)
{
setTheDay(whichDay);
}
public void setTheDay(String whichDay)
{
dayOfTheWeek = whichDay;
}
public void printTheDay()
{
System.out.println();
System.out.println("Day of the week entered is: " + dayOfTheWeek);
}
public String getTheFutureDay(String currentDayString, int futureDay)
{
int todayArrayPos = -1;
for (int i = 0; i < daysArray.length; i++)
{
if (daysArray[i].equalsIgnoreCase(currentDayString))
{
todayArrayPos = i;
break;
}
}
if (todayArrayPos == -1)
{
return "Invalid Day " + futureDay;
}
boolean bailOut = false;
int newFutureDay = 0;
int j = todayArrayPos;
while (newFutureDay != futureDay)
{
while (j < daysArray.length)
{
if (newFutureDay == futureDay)
{
bailOut = true;
break;
}
j += 1;
newFutureDay += 1;
}
if (bailOut == true)
{
break;
}
j = 0;
}
return daysArray[j];
}
public String getTheNextDay(String currentDayString)
{
String nextDayString = (dayOfTheWeek) + 1;
return nextDayString;
}
public String getThePreviousDay(String currentDayString)
{
String previousDayString = (dayOfTheWeek) + 6;
return previousDayString;
}
}
どんな助けでも大歓迎です!事前に感謝
マーク
もっと説明的な問題文を用意する必要があります。それは、あなたのコードが曜日を生成することを知っていますが、具体的に何が起きるのか、生成する日がわかりません。 – nhouser9
基本的には、曜日を配列にロードします。ユーザに開始日の選択を要求し、入力された日、前日、翌日を返し、0〜31日の間に追加して適切な回答を返すように求めます。現在、配列を次の要素または6つの要素に移動するのではなく、前日および次の日を正しく戻さないX日を追加した後、正しい開始日と正しい日を返します。day1またはday6が戻されます。それが私が求めていることを理解するのに役立つのでしょうか? – markus242005
はい、非常に役に立ちました。 – nhouser9