Calendar里的DATE和DAT_OF_MONTH有啥区别?在帮助里看着好像没区别
为什么我做一道题的时候  把DATE设置成2结果是对的,可是把DAY_OF_MONTH设置成2就不对了,设置成1才对?谢谢了!

解决方案 »

  1.   

    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Calendar;
    import java.util.Scanner;public class wenjian
    {
    public static void main(String args[])
    {
    int nian=0;
    int yue=0;
    Scanner dedao=new Scanner(System.in);System.out.print("请输入年:");
    nian=dedao.nextInt();
    System.out.print("请输入月:");
    yue=dedao.nextInt();if (nian<0 || yue<0 || yue>12)
    System.out.println("请输入正确的信息!");
    else
    {
    shijian a=new shijian(nian,yue);
    a.shezhiriqi();
    a.dedaoxingqi();
    a.jisuanxingqi();
    a.xianshi();}}
    }class shijian
    {
    //声明成员
    private int nian; //保存年
    private int yue; //保存月
    private String xingqi; //得到日期字符串
    private int shuzi = 0; //把日期转换成数字后保存到这里
    private int runnian = 0; //判断闰年//声明对象
    Date riqi = null;
    Calendar setriqi = Calendar.getInstance();
    SimpleDateFormat format = new SimpleDateFormat("E");//以下是构造方法
    public shijian(int nian, int yue) {
    this.nian = nian;
    this.yue = yue;if (nian % 4 == 0 && nian % 100 != 0) //判断闰年代码块
    runnian = 1;
    else if (nian % 100 == 0 && nian % 400 == 0)
    runnian = 1;
    }void shezhiriqi() { //把用户输入的年月设置为setriqi对象里的一部分
    setriqi.set(Calendar.YEAR, nian);
    setriqi.set(Calendar.MONTH, yue - 1);
    setriqi.set(Calendar.DAY_OF_MONTH, 1);
    riqi = setriqi.getTime(); //把设置后的时间生成一个Date对象返回给riqi引用
    }void dedaoxingqi() { // 输入riqi里的星期,把星期值赋给字符串xingqi
    xingqi = format.format(riqi);
    System.out.println("xingqi: "+xingqi);
    }void jisuanxingqi() { //对xingqi的值进行检测
    if (xingqi.equals("星期一"))
    shuzi = 1;
    else if (xingqi.equals("星期二"))
    shuzi = 2;
    else if (xingqi.equals("星期三"))
    shuzi = 3;
    else if (xingqi.equals("星期四"))
    shuzi = 4;
    else if (xingqi.equals("星期五"))
    shuzi = 5;
    else if (xingqi.equals("星期六"))
    shuzi = 6;
    else if (xingqi.equals("星期日"))
    shuzi = 0;
    }void xianshi() {
    int tianshu; //检测用户输入的月份有多少天
    switch (yue) {
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
    tianshu = 31;
    break;
    default:
    tianshu = 30;
    }if (runnian == 1 && yue == 2) //如果是闰年而且月份是2月
    tianshu = 29; //tianshu就是29
    else if (runnian != 1 && yue == 2)
    tianshu = 28; //如果不是闰年不过月份是2月 那tianshu就是28System.out.println("\t\t\t\t" + nian + "\t" + yue + "\n"); //输出
    System.out.println("\t日\t一\t二\t三\t四\t五\t六");for (int i = 0; i < shuzi; i++) { //输出tab 为了对齐
    System.out.print("\t");
    }
    for (int i = 1; i <= tianshu; i++, shuzi++) {
    if (shuzi == 7) { //把值循环输出
    System.out.print("\n");
    shuzi = 0;
    }System.out.print("\t" + i);
    }
    }
    }就是这些
      

  2.   

    你是要做一个日历出来吧 其实不用那么麻烦去判断是否是闰年  也不需要去用switch判断每个月多少天,我写个代码你运行一下
      

  3.   

    package project;import java.util.Calendar;public class CalendarTable {
        public CalendarTable() {
        }    public static void main(String[] args) {
            Calendar rightNow = Calendar.getInstance();
            int year, month;
            year = rightNow.get(Calendar.YEAR);
            month = rightNow.get(Calendar.MONTH);
     
            int num = rightNow.getActualMaximum(Calendar.DAY_OF_MONTH);        rightNow.set(year, month, 1);
            int now = rightNow.get(Calendar.DAY_OF_WEEK);        System.out.println("\t" + "\t" + "\t" + year + "年" + "  " + (month + 1) +
                               "   月");
            System.out.println("\t" + "日" + "\t" + "一" + "\t" + "二" + "\t" + "三" +
                               "\t" + "四" + "\t" + "五" + "\t" + "六");
            for (int j = 1; j < (now); j++) {
                System.out.print("\t");
            }
            for (int i = 1; i <= (num); i++) {
                System.out.print("\t" + i);
                if ((i + now - 1) % 7 == 0) {
                    System.out.println();
                }
            }
        }
    }
    这段代码是直接根据系统的时间打印当前时间的日历
    你可以改一下  改成通过输入来打印日历
      

  4.   

    呃 看的有点晕 可还是没有回答我的问题啊DATE和DAY_OF_MONTH有啥区别?