Как отобразить календарь в JavaJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как отобразить календарь в Java

Сообщение Anonymous »

В настоящее время я выполняю домашнее задание: мне нужно создать календарь, отображающий все месяцы года, включая дни месяца в нем. Библиотеки даты и времени не разрешены.
У меня проблемы с интервалом в первой строке каждого месяца. В классе мы изучали только операторы переключения, if, else, while, do- while, for циклы.
Вот что сейчас отображается для одного из моих месяцев:
Изображение вывода
На рисунке не показаны мои входные данные, но то, что я написал, было 2016 для года и 5 для дня недели, с которого начинается год.
Изображение вывода желаемого
Опять картинка желаемого. Я думаю, что моя проблема, возможно, заключается в уравнении, которое я использовал: int firstDayEachMonth = (daysMonth + firstDayYear)%7; хотя учитель дал нам это уравнение, но похоже, что оно не работает.
Как вы можете видеть, пробелы в первой строке расположены полностью слева, оно должно быть выровнено по назначенным датам, в данном случае для января 1 января должно совпадать с пятницей, а 2 января должно совпадать с субботой, но в настоящее время это воскресенье и понедельник.

Код: Выделить всё

    import java.util.Scanner;

public class DisplayCalendar
{
public static void main(String[] args)
{
//Create a new scanner
Scanner input = new Scanner(System.in);

// Prompt user to enter year
System.out.print("Enter a year: ");
int year = input.nextInt();

// Prompt user to enter first day of the year
System.out.print("Enter the weekday that the year starts: ");
int firstDayYear = input.nextInt();

// A for loop that prints out each month
for(int month = 1; month  -1)
{
// Count all years that are divisible by 4 to be a leap year.
leapYear += 4;

// If the year inputted is a leap year, the days of the month will be 29.
if (year == leapYear)
{
daysMonth = 29;
break;
}

else
{
daysMonth = 28;
}
}
break;

case 3: monthDisplay = "March";
daysMonth = 31;
break;

case 4: monthDisplay = "April";
daysMonth = 30;
break;

case 5: monthDisplay = "May";
daysMonth = 31;
break;

case 6: monthDisplay = "June";
daysMonth = 30;
break;

case 7: monthDisplay = "July";
daysMonth = 31;
break;

case 8: monthDisplay = "August";
daysMonth = 31;
break;

case 9: monthDisplay = "September";
daysMonth = 30;
break;

case 10: monthDisplay = "October";
daysMonth = 31;
break;

case 11: monthDisplay = "November";
daysMonth = 30;
break;

case 12: monthDisplay = "December";
daysMonth = 31;
break;

// If the month is not recognized, dialog box will be displayed, and then exits program.
default : System.out.print("Invalid: Your month is not recognized.  ");
System.exit(0);

}
// Display the month and year
System.out.println("                      "+ monthDisplay + " " + year);

// Display the lines
System.out.println("_____________________________________");

// Display the days of the week
System.out.println("Sun     Mon     Tue     Wed     Thu     Fri     Sat");

// Print spaces depending on the day the month starts.
int firstDayEachMonth = (daysMonth + firstDayYear)%7;
for (int space = 1; space 

Подробнее здесь: [url]https://stackoverflow.com/questions/35679827/how-to-display-calendar-in-java[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»