Пользователи могут настроить и распечатать календарь на определенный год, то есть распечатать весь календарь на определенный год.
Например, распечатайте календарь на 2013 год следующим образом:
февраль 2013 г.
----------------------------------------
Вс Пн Вт Ср Чт Пт Сб
2
4 5 6 7 8 9
11 12 13 14 15 16
18 19 20 21 22 23
25 26 27 28
Март 2013 г.
----------------------------------------
Вс Пн Вт Ср Чт Пт Сб
2
4 5 6 7 8 9
11 12 13 14 15 16
18 19 20 21 22 23
25 26 27 28 29 30
апрель 2013 г.
----------------------------------------
Вс Пн Вт Ср Чт Пт Сб
2 3 4 5 6
8 9 10 11 12 13
15 16 17 18 19 20
22 23 24 25 26 27
29 30
май 2013 г.
----------------------------------------
Вс Пн Вт Ср Чт Пт Сб
2 3 4
6 7 8 9 10 11
13 14 15 16 17 18
20 21 22 23 24 25
27 28 29 30 31
июнь 2013 г.
----------------------------------------
Вс Пн Вт Ср Чт Пт Сб
3 4 5 6 7 8
10 11 12 13 14 15
17 18 19 20 21 22
24 25 26 27 28 29
июль 2013 г.
----------------------------------------
Вс Пн Вт Ср Чт Пт Сб
2 3 4 5 6
8 9 10 11 12 13
15 16 17 18 19 20
22 23 24 25 26 27
29 30 31
август 2013 г.
----------------------------------------
Вс Пн Вт Ср Чт Пт Сб
двадцать три
5 6 7 8 9 10
12 13 14 15 16 17
19 20 21 22 23 24
26 27 28 29 30 31
Сентябрь 2013 г.
----------------------------------------
Вс Пн Вт Ср Чт Пт Сб
2 3 4 5 6 7
9 10 11 12 13 14
16 17 18 19 20 21
23 24 25 26 27 28
30
Октябрь 2013 г.
----------------------------------------
Вс Пн Вт Ср Чт Пт Сб
2 3 4 5
7 8 9 10 11 12
14 15 16 17 18 19
21 22 23 24 25 26
28 29 30 31
ноябрь 2013 г.
----------------------------------------
Вс Пн Вт Ср Чт Пт Сб
2
4 5 6 7 8 9
11 12 13 14 15 16
18 19 20 21 22 23
25 26 27 28 29 30
декабрь 2013 г.
----------------------------------------
Вс Пн Вт Ср Чт Пт Сб
2 3 4 5 6 7
9 10 11 12 13 14
16 17 18 19 20 21
23 24 25 26 27 28
30 31
Такие как печать: Календарь на январь 2014 года.
Сегодня: 27.04.2013, тогда календарь текущего месяца печатается следующим образом:
Теперь введите часть кода:
=============================================== ======
Часть кода:
=============================================== ======
/UUUUUU_Test/src/com/b510/date/HongtenDate.java
импортировать java.text.SimpleDateFormat;
импортировать java.util.Calendar;
импортировать java.util.Date;
импортировать java.util.GregorianCalendar;
/**
* Класс обработки даты. В этом классе конструктор <code>HongtenDate()</code> по умолчанию установит текущий год.<br>
* И <code>HongtenDate(intyear)</code>, вы можете настроить год<br>
*
* <пред>
* Дата HongtenDate = новая HongtenDate();
* </pre>
*
* или<br>
*
* <пред>
* HongtenDate hd = новая HongtenDate(2014);
* </pre>
*
* Вызовите <code>printCalendar()</code>, чтобы распечатать дату года<br>
* Вызовите <code>printCurrentMonth()</code>, чтобы распечатать дату текущего месяца<br>
*, конечно, вы также можете позвонить<br>
* <code>printMonthOfYear()</code>Установите параметр для печати даты определенного месяца<br>
* Вот несколько эталонных планов:<br>
*
* <пред>
* // Без параметров, по умолчанию используется текущий год
* Дата HongtenDate = новая HongtenDate();
* date.printCalendar();
* date.printCurrentMonth();
* date.printMonthOfYear(4);
* </pre>
*
* или<br>
*
* <пред>
* // Установлено 2014 год
* HongtenDate hd = новая HongtenDate(2014);
* hd.printCurrentMonth();
* hd.printMonthOfYear(1);
* </pre>
*
* @дата 27 апреля 2013 г.
* @author Хонгтен
*
*/
общественный класс HongtenDate {
//МЕСЯЦЫ
// ==========================================
public static Final String JANUARY = "Январь";
public static Final String ФЕВРАЛЬ = "Февраль";
public static Final String MARCH = "Март";
public static Final String APRIL = «Апрель»;
public static Final String MAY = «Май»;
public static Final String JUN = "Июнь";
public static Final String JULY = "Июль";
public static Final String AUGUST = "Август";
public static Final String SEPTERMBER = "Сентябрь";
public static Final String OCTOBER = "Октябрь";
public static Final String NOVEMBER = "Ноябрь";
public static Final String DECEMBER = "Декабрь";
/**
* год
*/
частный int год;
/**
* День недели 1 января (например: 2013-01-01-->вторник, поэтому <code>whatDayOnJanuaryOne = 2;</code>)
*/
частный int WhatDayOnJanuaryOne;
// основной
// ====================================
public static void main(String[] args) выдает исключение {
// Без параметров, по умолчанию используется текущий год
Дата HongtenDate = новая HongtenDate();
//date.printCalendar();
дата.printCurrentMonth();
// date.printMonthOfYear(4);
// Устанавливаем 2014 год
HongtenDate hd = новая HongtenDate(2014);
// hd.printCurrentMonth();
// hd.printMonthOfYear(1);
}
// Без параметров, по умолчанию используется текущий год
общественный HongtenDate() {
Календарь Cal = Calendar.getInstance();
this.year = Cal.get(Calendar.YEAR);
пытаться {
setWhatDayOnJanuaryOne (getJanuaryOne (год));
} catch (Исключение е) {
е.printStackTrace();
}
}
//С помощью параметров устанавливаем год
public HongtenDate(int год) {
этот.год = год;
пытаться {
setWhatDayOnJanuaryOne (getJanuaryOne (год));
} catch (Исключение е) {
е.printStackTrace();
}
}
/**
* Распечатать все даты определенного месяца
*
* @параммон
* месяц
* @throwsException
*/
public void printMonthOfYear(int mon) выдает исключение {
если (пн < 1 || пн > 12) {
System.out.println("Месяц, который вы ввели [" + mon + "] неправильный, проверьте, пожалуйста...");
возвращаться;
}
GregorianCalendar now = новый GregorianCalendar();
//Получаем объект Date
SimpleDateFormat sdf = новый SimpleDateFormat("гггг-ММ-дд");
Дата дата = sdf.parse(год + "-" + пн + "-01");
//Устанавливаем текущее время
now.setTime(дата);
// Получаем текущий месяц по дате
int месяц = now.get(Calendar.MONTH);
//Устанавливаем текущую дату на 1
now.set(Calendar.DAY_OF_MONTH, 1);
// Получить текущий день недели
int неделя = now.get(Calendar.DAY_OF_WEEK);
//Печать метки заголовка календаря
System.out.println("日/t一/t二/t三/t四/t五/t六");
//Печать пробела перед текущей датой
for (int i = Calendar.SUNDAY; i < неделя; i++) {
System.out.print("/t");
}
//Распечатываем тело календаря
while (now.get(Calendar.MONTH) == месяц) {
int day = now.get(Calendar.DAY_OF_MONTH);
//Выравниваем выходной календарь, добавляем пробел, если он меньше 10
если (день <10) {
System.out.print(" " + день + "/t");
} еще {
System.out.print("" + день + "/t");
}
// Если сегодня суббота, переносим строку
if (неделя == Calendar.SATURDAY) {
Система.out.println();
}
// Каждый раз при выводе даты добавляем к дате один день
now.add(Calendar.DAY_OF_MONTH, 1);
// Получаем день недели
неделя = now.get(Calendar.DAY_OF_WEEK);
}
}
/**
* Распечатайте все даты текущего месяца, они не будут меняться в зависимости от года, установленного пользователем.
*/
общественный недействительный printCurrentMonth () {
GregorianCalendar now = новый GregorianCalendar();
//Получаем объект Date
Дата дата = новая дата();
//Устанавливаем текущее время
now.setTime(дата);
//Получаем текущий день по дате
int toDay = now.get(Calendar.DAY_OF_MONTH);
// Получаем текущий месяц по дате
int месяц = now.get(Calendar.MONTH);
//Устанавливаем текущую дату на 1
now.set(Calendar.DAY_OF_MONTH, 1);
// Получить текущий день недели
int неделя = now.get(Calendar.DAY_OF_WEEK);
//Печать метки заголовка календаря
System.out.println("日/t一/t二/t三/t四/t五/t六");
//Печать пробела перед текущей датой
for (int i = Calendar.SUNDAY; i < неделя; i++) {
System.out.print("/t");
}
//Распечатываем тело календаря
while (now.get(Calendar.MONTH) == месяц) {
int day = now.get(Calendar.DAY_OF_MONTH);
//Выравниваем выходной календарь, добавляем пробел, если он меньше 10
если (день <10) {
// Если это текущая дата, добавляем метку
если (день == сегоднядень) {
System.out.print(":)" + день + "(:/t");
} еще {
System.out.print(" " + день + "/t");
}
} еще {
// Если это текущая дата, добавляем метку
если (день == сегодняДень) {
System.out.print(":)" + день + "(:/t");
} еще {
System.out.print("" + день + "/t");
}
}
// Если сегодня суббота, переносим строку
if (неделя == Calendar.SATURDAY) {
Система.out.println();
}
// Каждый раз при выводе даты добавляем к дате один день
now.add(Calendar.DAY_OF_MONTH, 1);
// Получаем день недели
неделя = now.get(Calendar.DAY_OF_WEEK);
}
}
/**
* Получите день недели, который приходится на 1 января этого года.
*
* @парам год
* год
* @возвращаться
* @throwsException
*/
public int getJanuaryOne(intyear) выдает исключение {
int[] WeekDays = { 0, 1, 2, 3, 4, 5, 6 };
Календарь Cal = Calendar.getInstance();
SimpleDateFormat sdf = новый SimpleDateFormat("гггг-ММ-дд");
Дата dt = sdf.parse(год + "-01-01");
Cal.setTime(дт);
int w = Cal.get(Calendar.DAY_OF_WEEK) - 1;
если (ш <0)
ш = 0;
вернуть WeekDays[w];
}
/**
* Печать всех месяцев года
*/
общественный недействительный printCalendar () {
for (int я = 1; я <= 12; я++) {
Строка месяца = getMonth(i);
printTitle (месяц);
//Печать месяцев с 31 днем
if (i == 1 || я == 3 || я == 5 || я == 7 || я == 8 || я == 10 || я == 12) {
печать31();
}
//Распечатываем месяц с 30 днями
иначе если (я == 4 || я == 6 || я == 9 || я == 11) {
печать30();
}
// печатаем февраль
иначе, если (я == 2) {
ПечатьФевраль();
}
Система.out.println();
}
}
//Формат печати
// ========================================== начало
/**
* Печать февраля Февраль может отличаться в каждом году, поэтому его необходимо обрабатывать отдельно.
*/
защищенный недействительный printFebuary () {
if (this.year % 4 == 0) {
// високосный год
печатьLeapYear();
} еще {
// обычный год
printNonleapYear();
}
}
/**
*Формат для печати за февраль високосного года.
*/
частная пустота printLeapYear() {
for (int j = 1; j <= 29; j++) {
Строка tmp = "";
если (j == 1) {
for (int k = 1; k <= this.whatDayOnJanuaryOne % 7; k++) {
ТМП = ТМП + " ";
}
tmp = tmp + " " + j + " ";
если (this.whatDayOnJanuaryOne == 6) {
System.out.println(tmp);
} еще {
System.out.print(tmp);
}
} else if (j > 1 && j < 29) {
if ((this.whatDayOnJanuaryOne + j) % 7 == 0) {
System.out.println(" " + j);
} еще {
если (j < 10) {
System.out.print(" " + j + " ");
} еще {
System.out.print(" " + j + " ");
}
}
} иначе, если (j == 29) {
System.out.println(" " + j);
this.whatDayOnJanuaryOne = ((this.whatDayOnJanuaryOne + j) % 7);
}
}
}
/**
* Распечатайте формат февраля в обычные годы.
*/
частная пустота printNonleapYear() {
for (int j = 1; j <= 28; j++) {
Строка tmp = "";
если (j == 1) {
for (int k = 1; k <= this.whatDayOnJanuaryOne % 7; k++) {
ТМП = ТМП + " ";
}
tmp = tmp + " " + j + " ";
если (this.whatDayOnJanuaryOne == 6) {
System.out.println(tmp);
} еще {
System.out.print(tmp);
}
} else if (j > 1 && j < 28) {
if ((this.whatDayOnJanuaryOne + j) % 7 == 0) {
System.out.println(" " + j);
} еще {
если (j < 10) {
System.out.print(" " + j + " ");
} еще {
System.out.print(" " + j + " ");
}
}
} иначе, если (j == 28) {
System.out.println(" " + j);
this.whatDayOnJanuaryOne = ((this.whatDayOnJanuaryOne + j) % 7);
}
}
}
/**
* Печать месяцев с 30 днями
*/
защищенный недействительный print30() {
for (int j = 1; j <= 30; j++) {
Строка tmp = "";
если (j == 1) {
for (int k = 1; k <= this.whatDayOnJanuaryOne % 7; k++) {
ТМП = ТМП + " ";
}
tmp = tmp + " " + j + " ";
если (this.whatDayOnJanuaryOne == 6) {
System.out.println(tmp);
} еще {
System.out.print(tmp);
}
} else if (j > 1 && j < 30) {
if ((this.whatDayOnJanuaryOne + j) % 7 == 0) {
System.out.println(" " + j);
} еще {
если (j < 10) {
System.out.print(" " + j + " ");
} еще {
System.out.print(" " + j + " ");
}
}
} иначе, если (j == 30) {
System.out.println(" " + j);
this.whatDayOnJanuaryOne = ((this.whatDayOnJanuaryOne + j) % 7);
}
}
}
/**
* Печать месяцев с 31 днем
*/
защищенный недействительный print31() {
for (int j = 1; j <= 31; j++) {
Строка tmp = "";
если (j == 1) {
for (int k = 1; k <= this.whatDayOnJanuaryOne % 7; k++) {
ТМП = ТМП + " ";
}
tmp = tmp + " " + j + " ";
если (this.whatDayOnJanuaryOne == 6) {
System.out.println(tmp);
} еще {
System.out.print(tmp);
}
} else if (j > 1 && j < 31) {
if ((this.whatDayOnJanuaryOne + j) % 7 == 0) {
System.out.println(" " + j);
} еще {
если (j < 10) {
System.out.print(" " + j + " ");
} еще {
System.out.print(" " + j + " ");
}
}
} иначе, если (j == 31) {
System.out.println(" " + j);
this.whatDayOnJanuaryOne = ((this.whatDayOnJanuaryOne + j) % 7);
}
}
}
/**
*Распечатайте название каждого месяца.
*
* @param месяц
*/
protected void printTitle(Stringmonth) {
System.out.println(" " + месяц + " " + этот.год + " ");
System.out.println("------------------------------------------- -- --");
System.out.println("Вс Пн Вт Ср Чт Пт Сб");
}
//Формат печати
// ============================================ конец
/**
* Получить английское название месяца
*
* @param м
* Числовое представление месяца
* @возвращаться
*/
общественная строка getMonth (int m) {
Строка месяц = "";
переключатель (м) {
случай 1:
месяц = ЯНВАРЬ;
перерыв;
случай 2:
месяц = ФЕВРАЛЬ;
перерыв;
случай 3:
месяц = МАРТ;
перерыв;
случай 4:
месяц = АПРЕЛЬ;
перерыв;
случай 5:
месяц = МАЙ;
перерыв;
случай 6:
месяц = ИЮНЬ;
перерыв;
случай 7:
месяц = ИЮЛЬ;
перерыв;
случай 8:
месяц = АВГУСТ;
перерыв;
случай 9:
месяц = СЕНТЯБРЬ;
перерыв;
случай 10:
месяц = ОКТЯБРЬ;
перерыв;
случай 11:
месяц = НОЯБРЬ;
перерыв;
случай 12:
месяц = ДЕКАБРЬ;
перерыв;
}
месяц возврата;
}
общественный int getYear() {
год возвращения;
}
public void setYear(intyear) {
этот.год = год;
}
public int getWhatDayOnJanuaryOne() {
вернуть WhatDayOnJanuaryOne;
}
public void setWhatDayOnJanuaryOne (int whatDayOnJanuaryOne) {
this.whatDayOnJanuaryOne = WhatDayOnJanuaryOne;
}
}