0
Итак, все сделано, но у меня есть одна проблема: мой календарь не сохраняет начальную дату, поскольку мы проходим через неделю.Проблема с выпуском Java-календаря с первым днем месяца
Вот мой код:
import java.awt.*;
import java.util.GregorianCalendar;
import javax.swing.*;
public class Calendrier extends JApplet {
// Instance Variables
GregorianCalendar calendar = new GregorianCalendar();
int ranger = 7;
int colonne = 7;
String[] semaine = { "Lu", "Ma", "Me", "Je", "Ve", "Sa", "Di" };
JLabel[][] grid = new JLabel[ranger][colonne];
JLabel jlblHeure = new JLabel("Heure: " + ""
+ calendar.get(GregorianCalendar.HOUR_OF_DAY) + ":"
+ calendar.get(GregorianCalendar.MINUTE));
JPanel jpnlCalendar = new JPanel(new GridLayout(7
, 7));
JPanel jpnlHeure = new JPanel(new GridLayout(1, 1));
int day = calendar.get(GregorianCalendar.DATE);
int daysInMonth = calendar.getActualMaximum(GregorianCalendar.DAY_OF_MONTH);
int daysInWeek = calendar.get(GregorianCalendar.DAY_OF_WEEK);
public void init() {
// setting grid
for (int i = 0; i < grid.length; i++) {
for (int j = 0; j < grid[0].length; j++) {
grid[i][j] = new JLabel();
}
}
// grid layout
Container contenu = getContentPane();
for (int i = 0; i < ranger; i++) {
for (int j = 0; j < colonne; j++) {
jpnlCalendar.add(grid[i][j]);
}
}
// adding JPanels + positions
contenu.add(jpnlCalendar);
contenu.add(jpnlHeure, "South");
jpnlHeure.add(jlblHeure);
// draw time
if (calendar.get(GregorianCalendar.MINUTE) < 10) {
jlblHeure = new JLabel("Heure: " + ""
+ calendar.get(GregorianCalendar.HOUR_OF_DAY) + ":" + "0"
+ calendar.get(GregorianCalendar.MINUTE));
}
// draw week days
for (int i = 0; i < semaine.length; i++) {
grid[0][i].setText(semaine[i]);
}
// draw calendar
for (int i = 1; i <= daysInMonth; i++) {
int row = ((i + daysInWeek )/7);
int column = (i + daysInWeek) % 7;
grid[row + 1][column].setText("" + i);
if (i == day) {
grid[row + 1][column].setText(i + "*");
}
}
}
}
Таким образом, это работает сегодня:
int row = ((i + daysInWeek) i++/7);
int column = ((i + dayInWeek) % 7);
Но завтра, я должен добавить -1 каждому daysInWeek.
Любое решение, так что это автоматизировано?
По крайней мере, поэтому мне не нужно менять его каждый день. Благодаря!
Старайтесь не использовать бетон 'Calendar', если вы не должны, вместо этого использовать' Calendar.getInstance() ' – MadProgrammer
Это часть задания, чтобы использовать GregorianCalendar. – user3011216