Java最简单的控制台日历

本文展示了如何在Java中利用Calendar类创建一个简单的控制台日历。通过代码示例,阐述了时间处理的基本运用,强调了Calendar类在处理日期和时间上的便利性。

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

Java最简单的控制台日历,Calendar的运用

  • package Zking.Swing控制台日历;
    
    import java.util.Calendar;
    
    public class 控制台日历s2 {
    	public static void main(String[] args) {
    
    		// 打印星期面板
    		System.out.println("周一\t周二\t周三\t周四\t周五\t周六\t周日");
    
    		// 设定初始值
    		int year = 2022;
    		int month = 4;
    		// 得到日历对象,获取1号前空格
    		Calendar cal1 = Calendar.getInstance();
    		cal1.set(year, month - 1, 1);
    
    		// 得到1号是周几
    		int week = cal1.get(Calendar.DAY_OF_WEEK) - 1;
    
            //周日为1要进行判段
    		week = (week == 0) ? 7 : week;
    		for (int i = 1; i < week; i++) {
    			System.out.print("**\t");
    
    		}
            //得到本月最大天数
    		int cal1MaxDate = cal1.getActualMaximum(Calendar.DAY_OF_MONTH);
    		for (int i = 1; i <= cal1MaxDate; i++) {
            
    			System.out.print(i + "\t");
            //每七列换一行
    			if ((i + week - 1) % 7 == 0) {
    				System.out.println();
    			}
    		}
    
    	}
    
    }


输出效果

最简单的日历控制台写法,关于时间的运用


总结

本文仅仅简单介绍了时间的使用,而时间Calendar提供了大量能使我们快速便捷地处理数据的函数和方法。

是一个java控制台日历程序 import java.util.Scanner; class page100_calender{ private int year; private int firstStartDay; page100_calender(int year,int firstStartDay){ this.year=year; this.firstStartDay=firstStartDay; } public void printCalender(){ for(int i=1;i<=12;i++){ printTitle(i); printMonthBody(i); System.out.println(); } } public void printTitle(int month){ System.out.println(" "+getMonthName(month)+" "+year); System.out.println("_____________________________"); System.out.println(" Sun Mon Tue Web Thu Fri Sat "); } public String getMonthName(int month){ String monthName=null; switch(month){ case 1:monthName="January"; break; case 2:monthName="February";break; case 3:monthName="Marth";break; case 4:monthName="April";break; case 5:monthName="May";break; case 6:monthName="June";break; case 7:monthName="July";break; case 8:monthName="August";break; case 9:monthName="September";break; case 10:monthName="October";break; case 11:monthName="November";break; case 12:monthName="December";break; } return monthName; } public void printMonthBody(int month){ int startDay=getStartDay(month); int numberOfDaysMonth=getNumberOfDaysInMonth(month); int i=0; for(i=0;i<startDay;i++) System.out.print(" "); for(i=1;i<=numberOfDaysMonth;i++){ if(i<10) System.out.print(" "+i); else System.out.print(" "+i); if((i+startDay)%7==0) System.out.println(); } } public int getStartDay(int month){ int Days=0; for(int i=1;i<month;i++){ Days+=getNumberOfDaysInMonth(i); } return (firstStartDay+Days)%7; } public int getNumberOfDaysInMonth(int month){ if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){ return 31; } if(month==4||month==6||month==9||month==11){ return 30; } if(month==2) return isLeapYear()?29:28; return -1; } public boolean isLeapYear(){ return (year%4==0&&year%100!=0)||year%400==0; } } class page100_4_29_main{ public static void main(String[] args){ Scanner inputYear=new Scanner(System.in); System.out.println("输入年份:"); int tempYear=inputYear.nextInt(); Scanner inputFirstStartDay=new Scanner(System.in); System.out.println("该年第一天的星期:"); int tempStartDay=inputFirstStartDay.nextInt(); page100_calender calender=new page100_calender(tempYear,tempStartDay); calender.printCalender(); } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值