当前位置: 代码迷 >> 综合 >> JAVA-使用Calendar类实现万年历的功能
  详细解决方案

JAVA-使用Calendar类实现万年历的功能

热度:23   发布时间:2024-02-01 09:50:04.0

import com.sun.org.apache.xpath.internal.SourceTree;import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;/*
1.键盘录入 日期(字符串)2.将字符串日期转为date日期3.date和 Calendar 产生关联4.记录当前日期是几号  加 *5.将日期变为当月的1号6.求出 当月 1号对应的是周几    算出空格的数量7.获取当月的最大天数8.进行日期的更改9.周六换行*/
public class CalendarTest2 {public static void main(String[] args) throws ParseException {//1.创建解析日期的格式DateFormat df = new SimpleDateFormat("yyyy-MM-dd");//2.键盘录入数据System.out.println("请输入您的日期(2020-2-2)");Scanner in = new Scanner(System.in);String strDate = in.next();///   String strDate = "2020-7-6";//3.将字符串数据==》dateDate date = df.parse(strDate);//4.calendar与Date产生关联Calendar calendar = Calendar.getInstance();calendar.setTime(date);//5.记录日期int day = calendar.get(Calendar.DATE);//6.将当前日期变为1号calendar.set(Calendar.DATE, 1);//7.输出表头System.out.println("日\t一\t二\t三\t四\t五\t六");int num = calendar.get(Calendar.DAY_OF_WEEK);//8.输出空格for (int i = 1; i < num; i++) {System.out.print("\t");}//9.输出数字int maxDay = calendar.getActualMaximum(Calendar.DATE);//System.out.println(maxDay);for (int i = 1; i <= maxDay; i++) {//输出每一个数字if (i == day) {System.out.print("*" + i + "\t");} else {System.out.print(i + "\t");}//  System.out.println("===="+calendar.get(Calendar.DATE));if (calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) {System.out.println();}//日期+1calendar.add(Calendar.DATE, 1);}}
}