J'ai créé un calendrier en Java. Il est conçu pour produire un calendrier pour un an cette année.
Cela fait deux mois que j'ai commencé à apprendre la programmation et je vais me briser le cœur, alors j'ai décidé de commencer à publier en détail. Regardez avec des yeux chaleureux. Je suis sur le point d'être frustré, s'il vous plaît.
・ Création d'un calendrier pour un an ・ Ajustez le nombre de jours en février en distinguant l'année de la miction -Unifier le format des caractères avec 3 caractères (pour le rendre plus facile à voir) -Override de la méthode toString
import java.time.LocalDate;
import java.time.Month;
import java.time.Year;
public class Calendar_test {
/*************************
*champ
*************************/
//Tableau pour matrice de calendrier
public int[][] calendarMatrix;
//Mois civil année mois
private Year year;
//Date locale pour le début du mois
LocalDate ld;
/***********************
*constructeur
***********************/
//Définir cette année
public Calendar_test() {
this.setYear();
}
/***********************
*Méthode
***********************/
//year setter
private void setYear() {
this.year = Year.now();
}
//Retour cette année
private Year getYear() {
return this.year;
}
//Le début du mois spécifié
private void setLd(int month) {
this.ld = LocalDate.of(this.getYear().getValue(), month, 1);
}
//Obtention au début du mois spécifié
private LocalDate getLd() {
return this.ld;
}
//Extraire la durée du mois spécifié
private int getMonthLength() {
Month thisMonth = Month.from(getLd());
return thisMonth.length(this.ld.isLeapYear());
}
//Obtenez le premier jour du mois
private int getFirstDay() {
return getLd().getDayOfWeek().getValue() - 1; //Mois:0 feu:1 eau:2 ...
}
//Mettre le nombre de jours dans le tableau de chaque mois
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() {
//Générateur pour l'intégration
StringBuilder sb = new StringBuilder();
//Spécification de format pour l'affichage à 3 chiffres
final String FORMAT = "%3d";
for (int n = 1; n <= 12; n++) {
this.calendarMatrix = new int[6][7];
this.setLd(n);
calcFields();
sb.append(getYear() + "Année" + n + "Mois");
sb.append("\r\n");
//Tourner pour insérer/6 fois verticalement
for (int i = 0; i < calendarMatrix.length; i++) {
//Horizontal 7 fois
for (int j = 0; j < calendarMatrix[i].length; j++) {
int date = calendarMatrix[i][j];
//Remplissez les caractères vides avec les valeurs par défaut
if (date == 0) {
sb.append(" ");
//Entrez les nombres en spécifiant le format
} else {
sb.append(String.format(FORMAT,date));
}
}
//Pause pauses dans une semaine
sb.append("\r\n");
}
//Pause en janvier
sb.append("\r\n");
}
return sb.toString();
}
public static void main(String[] args) {
System.out.println(new Calendar_test());
}
}
Janvier 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
Février 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
Mars 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
Avril 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
Juin 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
Juillet 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
Août 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
Septembre 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
Octobre 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
Novembre 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
Décembre 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
Je pense que je suis une personne dans la catégorie de la soi-disant faiblesse. Je n'ai pas non plus de compte Twitter.
Cependant, lorsque j'ai commencé à étudier la programmation, j'ai réalisé à quel point les ordinateurs sont incroyables. Je n'étudie que depuis deux mois, mais j'aimerais approfondir mes connaissances et les partager ici. Soyez gentil avec moi.
Recommended Posts