Ich habe einen Kalender in Java erstellt. Es ist so konzipiert, dass in diesem Jahr ein Kalender für ein Jahr ausgegeben wird.
Es ist zwei Monate her, seit ich angefangen habe, Programmieren zu lernen, und ich werde mir das Herz brechen, also habe ich beschlossen, mit dem Posten im Detail zu beginnen. Schau mit warmen Augen. Ich bin kurz davor, frustriert zu sein, bitte.
・ Erstellen eines Kalenders für ein Jahr ・ Passen Sie die Anzahl der Tage im Februar an, indem Sie das Jahr des Urinierens unterscheiden
import java.time.LocalDate;
import java.time.Month;
import java.time.Year;
public class Calendar_test {
/*************************
*Feld
*************************/
//Array für Kalendermatrix
public int[][] calendarMatrix;
//Kalendermonat Jahr Monat
private Year year;
//Lokales Datum für den Monatsanfang
LocalDate ld;
/***********************
*Konstrukteur
***********************/
//Set dieses Jahr
public Calendar_test() {
this.setYear();
}
/***********************
*Methode
***********************/
//year setter
private void setYear() {
this.year = Year.now();
}
//Kehre dieses Jahr zurück
private Year getYear() {
return this.year;
}
//Der Beginn des angegebenen Monatssetzers
private void setLd(int month) {
this.ld = LocalDate.of(this.getYear().getValue(), month, 1);
}
//Getter am Anfang des angegebenen Monats
private LocalDate getLd() {
return this.ld;
}
//Extrahieren Sie die Länge des angegebenen Monats
private int getMonthLength() {
Month thisMonth = Month.from(getLd());
return thisMonth.length(this.ld.isLeapYear());
}
//Holen Sie sich den ersten Tag des Monats
private int getFirstDay() {
return getLd().getDayOfWeek().getValue() - 1; //Mond:0 Feuer:1 Wasser:2 ...
}
//Geben Sie die Anzahl der Tage in das Array eines jeden Monats ein
public void calcFields() {
int row = 0;
int column = getFirstDay();
for(int date = 1; date <= getMonthLength(); date++) {
this.calendarMatrix[row][column] = date;
if(column == 6) {
row++;
column = 0;
} else {
column++;
}
}
}
@Override
public String toString() {
//Builder zum Einbetten
StringBuilder sb = new StringBuilder();
//Formatspezifikation für dreistellige Anzeige
final String FORMAT = "%3d";
for (int n = 1; n <= 12; n++) {
this.calendarMatrix = new int[6][7];
this.setLd(n);
calcFields();
sb.append(getYear() + "Jahr" + n + "Mond");
sb.append("\r\n");
//Zum Einsetzen drehen/6 mal vertikal
for (int i = 0; i < calendarMatrix.length; i++) {
//7 mal horizontal
for (int j = 0; j < calendarMatrix[i].length; j++) {
int date = calendarMatrix[i][j];
//Füllen Sie leere Zeichen mit den Standardwerten aus
if (date == 0) {
sb.append(" ");
//Geben Sie die Zahlen ein, indem Sie das Format angeben
} else {
sb.append(String.format(FORMAT,date));
}
}
//Pausen in einer Woche
sb.append("\r\n");
}
//Pause im Januar
sb.append("\r\n");
}
return sb.toString();
}
public static void main(String[] args) {
System.out.println(new Calendar_test());
}
}
Januar 2020
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Februar 2020
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29
März 2020
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
April 2020
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Mai 2020
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Juni 2020
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Juli 2020
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
August 2020
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
September 2020
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Oktober 2020
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
November 2020
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
Dezember 2020
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Ich denke, ich bin eine Person in der sogenannten Schwächekategorie. Ich habe auch keinen Twitter-Account.
Als ich jedoch anfing, Programmieren zu studieren, wurde mir klar, wie großartig Computer sind. Ich habe erst zwei Monate studiert, möchte aber mein Wissen vertiefen und hier teilen. Bitte sei nett zu mir.
Recommended Posts