Java_68_69_练习日历

1.将字符串通过SImpleDateFormat转化成Date对象,再将Date对象转化成日期类

/**
 * 思路总结:
 *  1.第一步先通过具体行动把骨架建起来。
 *  2.根据题意,利用日历知识解决实际问题,三个知识点
 *     a)本月的第一天是星期几,确定了前面的空格的个数。int w=Calendar.get(Calendar.Date)
 * 
 *  b)本月的最后一天是30还是31,还是28,决定的循环的临界值。 c)输入的字符串通过new
 *             simpleDateFormat("yyyy-MM-dd").parse(str)变成日期对象date。
               有Calendar c =new GregorianCalendar();c.setTime(date)方法把日期对象变成日历。
 */

package cn.pmcse.array;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;

/**
 * 可视化日历
 * @author Administrator
 *
 */
public class Test68 {
    public static void main(String[] args) {
//        String temp="2020-2-2";//字符串
//        DateFormat format=new SimpleDateFormat("yyyy-MM-dd");//时间格式
//        try {
//            Date time=format.parse(temp); //将temp转成时间对象
//            Calendar calendar=new GregorianCalendar();//日历计算
//            calendar.setTime(time);//
//            
//            System.out.println("日\t一\t二\t三\t四\t五\t六");
//            int c=0;
//            for(int i=1;i<32;i++) {
//                System.out.print(i+"\t");
//                c++;
//                if(c%7==0) {
//                    System.out.println();
//                }
//            }
//        } catch (ParseException e) {
//            // TODO Auto-generated catch block
//            e.printStackTrace();
//        }
        System.out.println("输入格式为“2018-01-01”");
        Scanner scanner=new Scanner(System.in);
        String inputStr=scanner.nextLine();
        String str=inputStr;
        DateFormat fromat=new SimpleDateFormat("yyyy-MM-dd");
        try {
            Date date=fromat.parse(str);
            Calendar calendar=new GregorianCalendar();
            calendar.setTime(date);
            int day=calendar.get(Calendar.DATE);
            calendar.set(Calendar.DATE,1);
            System.out.println("该月1号对应的Java内部周几:"+calendar.get(Calendar.DAY_OF_WEEK));//星期几 1是星期日7是星期六
            System.out.println("该月份最大日期:"+calendar.getActualMaximum(Calendar.DATE));//当月最大日期
            System.out.println(calendar.get(Calendar.YEAR));
            int maxDate=calendar.getActualMaximum(Calendar.DATE);//获得月份最大日期
            System.out.println("日\t一\t二\t三\t四\t五\t六");
            for(int i=1;i<calendar.get(Calendar.DAY_OF_WEEK);i++) {
                System.out.print('\t');
            }
            for(int i=1;i<=maxDate;i++) {
                if(i==day) {
                    System.out.print("|"+i+"|"+"\t");
                }else {
                    System.out.print(i+"\t");    
                }
                
                int xq=calendar.get(Calendar.DAY_OF_WEEK);
                if(xq==7) {
                    System.out.println();
//                    xq=0;
                }
                calendar.add(Calendar.DATE,1);//日期+1
//                xq++;
            }
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
}
 

发布了136 篇原创文章 · 获赞 11 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/pmcasp/article/details/85178123
68