欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

写一个今晚的作业吧----打印日历

程序员文章站 2022-05-30 14:46:48
...

直接上代码—

import java.util.Calendar;
import java.util.Scanner;

/**
 * @author : Gavin
 * @date: 2021/7/9 - 07 - 09 - 21:50
 * @Description: baozhuang
 * @version: 1.0
 */
public class Rili {
    public static void main(String[] args) {
        System.out.println("请输入您要查询的日期--格式(2021-07-09)");
        Scanner sc = new Scanner(System.in);
        String strTime=sc.next();//接收用户输入
        //将字符转转换为Date
        java.util.Date date= java.sql.Date.valueOf(strTime);
        System.out.print("日\t一\t二\t三\t四\t五\t六\n");

        //打印天数---获得给的日期的天数--转换成Calendar类
        Calendar cal=Calendar.getInstance();
        cal.setTime(date);//从0开始为1月,
int nowDay=cal.get(Calendar.DAY_OF_MONTH);
        int maxday=cal.getActualMaximum(Calendar.DAY_OF_MONTH);//获得月份的天数
        //System.out.println(maxday);
        cal.set(Calendar.DAY_OF_MONTH,1);//设置当月天数为1
       // System.out.println(cal);
        int nullPoint=cal.get(Calendar.DAY_OF_WEEK);//获得一个周的第2天--周一
//打印的时候空(nullPoint-1 ) 个空格
        //System.out.println(nullPoint);
        int count =0;
        for (int i = 0; i <nullPoint-1 ; i++) {
            System.out.print("\t");
        }
       count=count+nullPoint-1;
        for (int i = 1; i <=maxday ; i++) {
           if(i==nowDay){
                System.out.print(i+"*"+"\t");
            }else{
               System.out.print(i+"\t");
           }

            count++;
            if(count%7==0){
                System.out.println();
            }
        }
        sc.close();
    }
}

主要是注意日期月份有些是从0开始的,西方跟东方的差别吧!!
思路已经写在了代码里;虽然有时候不能一下在写出来,要不断调试;

滚回去改Bug说的就是这个嘛???

相关标签: java 源码 java