Benutzer können den Kalender für ein bestimmtes Jahr anpassen und ausdrucken, d. h. den gesamten Kalender für ein bestimmtes Jahr ausdrucken.
Drucken Sie den Kalender 2013 beispielsweise wie folgt aus:
Februar 2013
----------------------------------------
So Mo Di Mi Do Fr Sa
2
4 5 6 7 8 9
11 12 13 14 15 16
18 19 20 21 22 23
25 26 27 28
März 2013
----------------------------------------
So Mo Di Mi Do Fr Sa
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
April 2013
----------------------------------------
So Mo Di Mi Do Fr Sa
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
Mai 2013
----------------------------------------
So Mo Di Mi Do Fr Sa
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
Juni 2013
----------------------------------------
So Mo Di Mi Do Fr Sa
3 4 5 6 7 8
10 11 12 13 14 15
17 18 19 20 21 22
24 25 26 27 28 29
Juli 2013
----------------------------------------
So Mo Di Mi Do Fr Sa
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
August 2013
----------------------------------------
So Mo Di Mi Do Fr Sa
dreiundzwanzig
5 6 7 8 9 10
12 13 14 15 16 17
19 20 21 22 23 24
26 27 28 29 30 31
September 2013
----------------------------------------
So Mo Di Mi Do Fr Sa
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
Oktober 2013
----------------------------------------
So Mo Di Mi Do Fr Sa
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
November 2013
----------------------------------------
So Mo Di Mi Do Fr Sa
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
Dezember 2013
----------------------------------------
So Mo Di Mi Do Fr Sa
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
Zum Beispiel Drucken: Kalender für Januar 2014
Heute ist: 27.04.2013, dann wird der Kalender des aktuellen Monats wie folgt gedruckt:
Geben Sie nun den Codeteil ein:
=============================================== ======
Codeteil:
=============================================== ======
/UUUUUU_Test/src/com/b510/date/HongtenDate.java
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
/**
* Eine Datumsverarbeitungsklasse. In dieser Klasse setzt der Konstruktor <code>HongtenDate()</code> das Jahr standardmäßig auf das aktuelle Jahr<br>
* Und <code>HongtenDate(int year)</code>, Sie können das Jahr anpassen<br>
*
* <pre>
* HongtenDate date = new HongtenDate();
* </pre>
*
* oder<br>
*
* <pre>
* HongtenDate hd = new HongtenDate(2014);
* </pre>
*
* Rufen Sie <code>printCalendar()</code> auf, um das Datum des Jahres auszudrucken<br>
* Rufen Sie <code>printCurrentMonth()</code> auf, um das Datum des aktuellen Monats auszudrucken<br>
*, natürlich können Sie auch anrufen<br>
* <code>printMonthOfYear()</code>Legen Sie einen Parameter fest, um das Datum eines bestimmten Monats zu drucken<br>
* Hier sind einige Referenzpläne:<br>
*
* <pre>
* // Keine Parameter, das System verwendet standardmäßig das aktuelle Jahr
* HongtenDate date = new HongtenDate();
* date.printCalendar();
* date.printCurrentMonth();
* date.printMonthOfYear(4);
* </pre>
*
* oder<br>
*
* <pre>
* // Auf 2014 gesetzt
* HongtenDate hd = new HongtenDate(2014);
* hd.printCurrentMonth();
* hd.printMonthOfYear(1);
* </pre>
*
* @Datum 27.04.2013
* @author hongten
*
*/
öffentliche Klasse HongtenDate {
//MONATE
// ==========================================
public static final String JANUARY = "January";
public static final String FEBUARY = "February";
öffentlicher statischer finaler String MARCH = "March";
öffentlicher statischer finaler String APRIL = "April";
öffentlicher statischer finaler String MAY = "May";
öffentlicher statischer finaler String JUN = "Jun";
public static final String JULY = "July";
public static final String AUGUST = "August";
öffentlicher statischer finaler String SEPTERMBER = "September";
public static final String OCTOBER = "October";
public static final String NOVEMBER = "November";
public static final String DECEMBER = "December";
/**
* Jahr
*/
privat int Jahr;
/**
* Der Wochentag am 1. Januar (z. B. 2013-01-01-->Tuesday, also <code>whatDayOnJanuaryOne = 2;</code>)
*/
private int whatDayOnJanuaryOne;
// hauptsächlich
// =====================================
public static void main(String[] args) löst eine Ausnahme aus {
// Keine Parameter, das System verwendet standardmäßig das aktuelle Jahr
HongtenDate date = new HongtenDate();
//date.printCalendar();
date.printCurrentMonth();
// date.printMonthOfYear(4);
// Auf 2014 gesetzt
HongtenDate hd = neues HongtenDate(2014);
// hd.printCurrentMonth();
// hd.printMonthOfYear(1);
}
// Keine Parameter, das System verwendet standardmäßig das aktuelle Jahr
öffentliches HongtenDate() {
Kalender cal = Calendar.getInstance();
this.year = cal.get(Calendar.YEAR);
versuchen {
setWhatDayOnJanuaryOne(getJanuaryOne(year));
} Catch (Ausnahme e) {
e.printStackTrace();
}
}
//Mit Parametern das Jahr festlegen
öffentliches HongtenDate(int Jahr) {
this.year = Jahr;
versuchen {
setWhatDayOnJanuaryOne(getJanuaryOne(year));
} Catch (Ausnahme e) {
e.printStackTrace();
}
}
/**
* Drucken Sie alle Daten eines bestimmten Monats aus
*
* @parammon
* Monat
* @throwsException
*/
public void printMonthOfYear(int mon) löst eine Ausnahme aus {
if (mon < 1 || mon > 12) {
System.out.println("Der von Ihnen eingegebene Monat [" + mon + "] ist falsch, bitte überprüfen Sie ihn in Bearbeitung....");
zurückkehren;
}
GregorianCalendar now = new GregorianCalendar();
//Holen Sie sich ein Date-Objekt
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Datum date = sdf.parse(year + „-“ + mon + „-01“);
//Stellt die aktuelle Uhrzeit ein
now.setTime(date);
// Den aktuellen Monat aus dem Datum abrufen
int Monat = now.get(Calendar.MONTH);
//Setze das aktuelle Datum auf 1
now.set(Calendar.DAY_OF_MONTH, 1);
// Holen Sie sich den aktuellen Wochentag
int Woche = now.get(Calendar.DAY_OF_WEEK);
//Kopfzeilenbeschriftung des Kalenders drucken
System.out.println("日/t一/t二/t三/t四/t五/t六");
//Den Leerraum vor dem aktuellen Datum ausgeben
for (int i = Calendar.SUNDAY; i < Woche; i++) {
System.out.print("/t");
}
//Kalendertext drucken
while (now.get(Calendar.MONTH) == Monat) {
int day = now.get(Calendar.DAY_OF_MONTH);
// Richten Sie den Ausgabekalender aus und fügen Sie ein Leerzeichen hinzu, wenn es weniger als 10 beträgt
if (Tag < 10) {
System.out.print(" " + Tag + "/t");
} anders {
System.out.print("" + Tag + "/t");
}
// Wenn es Samstag ist, brechen Sie die Zeile um
if (week == Calendar.SATURDAY) {
System.out.println();
}
// Bei jeder Ausgabe des Datums einen Tag zum Datum hinzufügen
now.add(Calendar.DAY_OF_MONTH, 1);
// Wochentag abrufen
Woche = now.get(Calendar.DAY_OF_WEEK);
}
}
/**
* Drucken Sie alle Daten des aktuellen Monats. Dies ändert sich nicht, abhängig vom vom Benutzer eingestellten Jahr
*/
public void printCurrentMonth() {
GregorianCalendar now = new GregorianCalendar();
//Holen Sie sich ein Date-Objekt
Datum date = neues Date();
//Stellt die aktuelle Uhrzeit ein
now.setTime(date);
//Den aktuellen Tag aus date abrufen
int toDay = now.get(Calendar.DAY_OF_MONTH);
// Den aktuellen Monat aus dem Datum abrufen
int Monat = now.get(Calendar.MONTH);
//Setze das aktuelle Datum auf 1
now.set(Calendar.DAY_OF_MONTH, 1);
// Holen Sie sich den aktuellen Wochentag
int Woche = now.get(Calendar.DAY_OF_WEEK);
//Kopfzeilenbeschriftung des Kalenders drucken
System.out.println("日/t一/t二/t三/t四/t五/t六");
//Den Leerraum vor dem aktuellen Datum ausgeben
for (int i = Calendar.SUNDAY; i < Woche; i++) {
System.out.print("/t");
}
//Kalendertext drucken
while (now.get(Calendar.MONTH) == Monat) {
int day = now.get(Calendar.DAY_OF_MONTH);
// Richten Sie den Ausgabekalender aus und fügen Sie ein Leerzeichen hinzu, wenn es weniger als 10 beträgt
if (Tag < 10) {
// Wenn es das aktuelle Datum ist, fügen Sie eine Beschriftung hinzu
if (day == toDay) {
System.out.print(":)" + Tag + "(:/t");
} anders {
System.out.print(" " + Tag + "/t");
}
} anders {
// Wenn es das aktuelle Datum ist, fügen Sie eine Beschriftung hinzu
if (day == toDay) {
System.out.print(":)" + Tag + "(:/t");
} anders {
System.out.print("" + Tag + "/t");
}
}
// Wenn es Samstag ist, brechen Sie die Zeile um
if (week == Calendar.SATURDAY) {
System.out.println();
}
// Bei jeder Ausgabe des Datums einen Tag zum Datum hinzufügen
now.add(Calendar.DAY_OF_MONTH, 1);
// Wochentag abrufen
Woche = now.get(Calendar.DAY_OF_WEEK);
}
}
/**
* Holen Sie sich den Wochentag, an dem der 1. Januar dieses Jahres ist
*
* @param Jahr
* Jahr
* @zurückkehren
* @throwsException
*/
public int getJanuaryOne(int year) löst eine Ausnahme aus {
int[] WeekDays = { 0, 1, 2, 3, 4, 5, 6 };
Kalender cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Datum dt = sdf.parse(Jahr + „-01-01“);
cal.setTime(dt);
int w = cal.get(Calendar.DAY_OF_WEEK) - 1;
wenn (w < 0)
w = 0;
return WeekDays[w];
}
/**
* Drucken Sie alle Monate des Jahres aus
*/
public void printCalendar() {
for (int i = 1; i <= 12; i++) {
String Monat = getMonth(i);
printTitle(Monat);
//Monate mit 31 Tagen drucken
if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12) {
print31();
}
//Drucken Sie den Monat mit 30 Tagen
sonst wenn (i == 4 || i == 6 || i == 9 || i == 11) {
print30();
}
// Februar drucken
sonst wenn (i == 2) {
printFebuary();
}
System.out.println();
}
}
//Druckformat
// ========================================== Start
/**
* Drucken Februar. Der Februar kann in jedem Jahr unterschiedlich sein und muss daher separat verarbeitet werden.
*/
protected void printFebuary() {
if (dieses Jahr % 4 == 0) {
// Schaltjahr
printLeapYear();
} anders {
// normales Jahr
printNonleapYear();
}
}
/**
*Druckformat für Februar im Schaltjahr
*/
private void printLeapYear() {
for (int j = 1; j <= 29; j++) {
String tmp = "";
if (j == 1) {
for (int k = 1; k <= this.whatDayOnJanuaryOne % 7; k++) {
tmp = tmp + " ";
}
tmp = tmp + " " + j + " ";
if (this.whatDayOnJanuaryOne == 6) {
System.out.println(tmp);
} anders {
System.out.print(tmp);
}
} sonst wenn (j > 1 && j < 29) {
if ((this.whatDayOnJanuaryOne + j) % 7 == 0) {
System.out.println(" " + j);
} anders {
wenn (j < 10) {
System.out.print(" " + j + " ");
} anders {
System.out.print(" " + j + " ");
}
}
} sonst if (j == 29) {
System.out.println(" " + j);
this.whatDayOnJanuaryOne = ((this.whatDayOnJanuaryOne + j) % 7);
}
}
}
/**
* Drucken Sie das Format Februar in normalen Jahren aus
*/
private void printNonleapYear() {
for (int j = 1; j <= 28; j++) {
String tmp = "";
if (j == 1) {
for (int k = 1; k <= this.whatDayOnJanuaryOne % 7; k++) {
tmp = tmp + " ";
}
tmp = tmp + " " + j + " ";
if (this.whatDayOnJanuaryOne == 6) {
System.out.println(tmp);
} anders {
System.out.print(tmp);
}
} sonst wenn (j > 1 && j < 28) {
if ((this.whatDayOnJanuaryOne + j) % 7 == 0) {
System.out.println(" " + j);
} anders {
wenn (j < 10) {
System.out.print(" " + j + " ");
} anders {
System.out.print(" " + j + " ");
}
}
} sonst if (j == 28) {
System.out.println(" " + j);
this.whatDayOnJanuaryOne = ((this.whatDayOnJanuaryOne + j) % 7);
}
}
}
/**
* Monate mit 30 Tagen drucken
*/
protected void print30() {
for (int j = 1; j <= 30; j++) {
String tmp = "";
if (j == 1) {
for (int k = 1; k <= this.whatDayOnJanuaryOne % 7; k++) {
tmp = tmp + " ";
}
tmp = tmp + " " + j + " ";
if (this.whatDayOnJanuaryOne == 6) {
System.out.println(tmp);
} anders {
System.out.print(tmp);
}
} sonst wenn (j > 1 && j < 30) {
if ((this.whatDayOnJanuaryOne + j) % 7 == 0) {
System.out.println(" " + j);
} anders {
wenn (j < 10) {
System.out.print(" " + j + " ");
} anders {
System.out.print(" " + j + " ");
}
}
} sonst if (j == 30) {
System.out.println(" " + j);
this.whatDayOnJanuaryOne = ((this.whatDayOnJanuaryOne + j) % 7);
}
}
}
/**
* Monate mit 31 Tagen drucken
*/
protected void print31() {
for (int j = 1; j <= 31; j++) {
String tmp = "";
if (j == 1) {
for (int k = 1; k <= this.whatDayOnJanuaryOne % 7; k++) {
tmp = tmp + " ";
}
tmp = tmp + " " + j + " ";
if (this.whatDayOnJanuaryOne == 6) {
System.out.println(tmp);
} anders {
System.out.print(tmp);
}
} sonst wenn (j > 1 && j < 31) {
if ((this.whatDayOnJanuaryOne + j) % 7 == 0) {
System.out.println(" " + j);
} anders {
wenn (j < 10) {
System.out.print(" " + j + " ");
} anders {
System.out.print(" " + j + " ");
}
}
} sonst if (j == 31) {
System.out.println(" " + j);
this.whatDayOnJanuaryOne = ((this.whatDayOnJanuaryOne + j) % 7);
}
}
}
/**
*Drucken Sie den Titel jedes Monats aus
*
* @param Monat
*/
protected void printTitle(String Monat) {
System.out.println(" " + Monat + " " + this.year + " ");
System.out.println("---------------------------- -- --");
System.out.println("Sun Mon Di Wed Do Fri Sa");
}
//Druckformat
// ============================================ Ende
/**
* Holen Sie sich den englischen Namen des Monats
*
* @param m
* Numerische Darstellung des Monats
* @zurückkehren
*/
public String getMonth(int m) {
String Monat = "";
Schalter (m) {
Fall 1:
Monat = JANUAR;
brechen;
Fall 2:
Monat = FEBUAR;
brechen;
Fall 3:
Monat = MÄRZ;
brechen;
Fall 4:
Monat = APRIL;
brechen;
Fall 5:
Monat = MAI;
brechen;
Fall 6:
Monat = JUNI;
brechen;
Fall 7:
Monat = JULI;
brechen;
Fall 8:
Monat = AUGUST;
brechen;
Fall 9:
Monat = SEPTERMBER;
brechen;
Fall 10:
Monat = OKTOBER;
brechen;
Fall 11:
Monat = NOVEMBER;
brechen;
Fall 12:
Monat = DEZEMBER;
brechen;
}
Rückkehrmonat;
}
public int getYear() {
Rückkehrjahr;
}
public void setYear(int Jahr) {
this.year = Jahr;
}
public int getWhatDayOnJanuaryOne() {
return whatDayOnJanuaryOne;
}
public void setWhatDayOnJanuaryOne(int whatDayOnJanuaryOne) {
this.whatDayOnJanuaryOne = whatDayOnJanuaryOne;
}
}