每月第一天的Java日历小程序问题

每月第一天的Java日历小程序问题,java,calendar,applet,Java,Calendar,Applet,所以一切都完成了,但我有一个问题:我的日历没有在一周中记录开始日期 这是我的密码: import java.awt.*; import java.util.GregorianCalendar; import javax.swing.*; public class Calendrier extends JApplet { // Instance Variables GregorianCalendar calendar = new GregorianCalendar();

所以一切都完成了,但我有一个问题:我的日历没有在一周中记录开始日期

这是我的密码:

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 + "*");
            }
        }

    }

}
但是明天,我必须每周每天加-1

有什么解决方案可以让这一切自动化吗


或者至少这样我就不用每天都换了。谢谢

我自己找到的。这是:

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 today = calendar.get(GregorianCalendar.DAY_OF_MONTH);
    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]);
        }
        //conditions for the calendar
        calendar.set(GregorianCalendar.DAY_OF_MONTH, 1);
        int daysInWeek = calendar.get(GregorianCalendar.DAY_OF_WEEK) - 1;
        System.out.print(daysInWeek);
        if (daysInWeek == 0)
            daysInWeek = 7;
        calendar.set(GregorianCalendar.DAY_OF_MONTH, today);

        int days = 1;

        for (int k = daysInWeek - 1; k < colonne; k++) {
            grid[1][k].setText(days + "");
            if (days == today)
                grid[1][k].setText(days + "*");
            days++;
        }
        // draw calendar
        for (int i = 2; i <= colonne; i++) {
            for (int j = 0; j < ranger; j++) {
                if (days <= daysInMonth) {
                    grid[i][j].setText(days + "");
                    if (days == today)
                        grid[i][j].setText(days + "*");
                    days++;
                }
            }
        }

    }
}
import java.awt.*;
导入java.util.GregorianCalendar;
导入javax.swing.*;
公营压延机{
//实例变量
格里高利安日历=新的格里高利安日历();
int ranger=7;
内科隆=7;
字符串[]语义={“Lu”、“Ma”、“Me”、“Je”、“Ve”、“Sa”、“Di”};
JLabel[][]网格=新JLabel[ranger][colonne];
JLabel jlblHeure=新的JLabel(“Heure:+”)
+日历。获取(格里高利安日历。一天中的小时数)+“:”
+获取(gregorianalendar.MINUTE));
JPanel-jpnlCalendar=newjpanel(newgridlayout(7,7));
JPanel-jpnlHeure=新的JPanel(新的网格布局(1,1));
int today=calendar.get(Gregorianalendar.DAY/u/u月);
int daysInMonth=calendar.getActualMaximum(GregorianCalendar.DAY/u月);
int daysInWeek=calendar.get(gregorianalendar.DAY/u周);
公共void init(){
//设置网格
对于(int i=0;i对于(int i=2;如果不需要,我尽量不使用具体的
日历
,而是使用
Calendar.getInstance()
使用gregoriacalendar是任务的一部分。
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 today = calendar.get(GregorianCalendar.DAY_OF_MONTH);
    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]);
        }
        //conditions for the calendar
        calendar.set(GregorianCalendar.DAY_OF_MONTH, 1);
        int daysInWeek = calendar.get(GregorianCalendar.DAY_OF_WEEK) - 1;
        System.out.print(daysInWeek);
        if (daysInWeek == 0)
            daysInWeek = 7;
        calendar.set(GregorianCalendar.DAY_OF_MONTH, today);

        int days = 1;

        for (int k = daysInWeek - 1; k < colonne; k++) {
            grid[1][k].setText(days + "");
            if (days == today)
                grid[1][k].setText(days + "*");
            days++;
        }
        // draw calendar
        for (int i = 2; i <= colonne; i++) {
            for (int j = 0; j < ranger; j++) {
                if (days <= daysInMonth) {
                    grid[i][j].setText(days + "");
                    if (days == today)
                        grid[i][j].setText(days + "*");
                    days++;
                }
            }
        }

    }
}