做一个日历,输入一个日期,可以生成当月的日历表,并且在对应的天数上面显示*号

本文介绍了一个简单的Java程序,该程序可以根据用户输入的日期生成对应月份的日历,并在特定日期上标记*号。程序使用了java.util.Calendar和java.text.SimpleDateFormat等类来处理日期和格式化输出。

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


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;
/**
 *做一个日历,输入一个日期,可以生成当月的日历表,并且在对应的天数上面显示*号
 */
public class MakeCalendar {
    public static void main(String[] args) throws ParseException {
        System.out.println("请输入日期:(年月日,格式:2009-9-20):");

        //设置时间为输入模式
        Scanner s = new Scanner(System.in);
        String str = s.nextLine();

        //把时间DATE转给Calendar
        DateFormat a = new SimpleDateFormat("yyyy-MM-dd");
        Date c = a.parse(str);
        Calendar b = new GregorianCalendar();
        b.setTime(c);

        //对本月进行处理
        int day = b.get(b.DAY_OF_MONTH);
        b.set(Calendar.DATE, 1);    //将一个月的的第一天变为1号
        int xingqiji = b.get(Calendar.DAY_OF_WEEK); //获得本日在这一周是星期几
        int tianshu = b.getActualMaximum(Calendar.DATE);    //获得本月的天数

        //******************************
        System.out.println("日\t一\t二\t三\t四\t五\t六");
        for(int j = 1;j<xingqiji;j++){
            System.out.print("\t");
        }
        for(int i = 1;i<=tianshu;i++){
            if(i==day){
                System.out.print("*");
            }
            System.out.print(i+"\t");
            int e = b.get(b.DAY_OF_WEEK);
            if(e==7){
                System.out.println();
            }
            b.add(b.DATE, 1);   //每进行一次循环就要增加一天
        }
    }



}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值