Java实现一个简易万年历

这篇博客展示了如何使用Java实现一个简易的万年历功能。通过Scanner获取用户输入的日期,使用SimpleDateFormat解析日期,然后利用GregorianCalendar类设置日期并获取每月第一天的星期。接着,程序打印出日历表格,高亮显示输入的日期,并在每个周六结束后换行。遇到异常时,程序会打印堆栈跟踪。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.imooc.canlendar;
import java.net.StandardSocketOptions;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;
public class CalendarTest {
 public static void main(String[] args) {
  // TODO 自动生成的方法存根
  System.out.println("输入日期:xxxx-xx-xx");
  Scanner scan = new Scanner(System.in);
  String date = scan.nextLine();
  SimpleDateFormat  sdf = new SimpleDateFormat("yyyy-MM-dd");//自定义日期格式
  
  try {
   //Date d = sdf.parse(date);//将日期形式的字符串用SimpleDateFormat中的parse方法转变成日期传给Date对象
   Calendar calendar = new GregorianCalendar();//创建一个Calendar对象
   calendar.setTime(sdf.parse(date));//用Calendar的setTime方法创建时间
   int day = calendar.get(calendar.DATE);//将输入的时间天数保存给day
   calendar.set(calendar.DATE,1);//将日期改为1
   System.out.println("日\t一\t二\t三\t四\t五\t六");
   for(int i=1;i<calendar.get(calendar.DAY_OF_WEEK);i++) {//用get(calendar.DAY_OF_WEEK)的到该月1日为星期几
    System.out.print("\t");
   }
   
   for(int i=1;i<=calendar.getActualMaximum(calendar.DATE);i++) {//用getActualMaximum(calendar.DATE)获得当月最大日期数
    if(i==day) {
     System.out.print("*");//*定位到输入的日期
    }
    System.out.print(i+"\t");
    
    int w =calendar.get(calendar.DAY_OF_WEEK);
    if(w ==calendar.SATURDAY) {      //每逢星期六换行
     System.out.println();
    }
    calendar.add(calendar.DATE,1);
    
    
   }
   
  } catch (ParseException e) {
   // TODO 自动生成的 catch 块
   e.printStackTrace();
  }
 }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值