java打印指定年月份的日历
本文实例为大家分享了java打印指定年月份日历的具体代码,供大家参考,具体内容如下
做了一个小的日历打印,没有使用数组,所以不能对日期进行操作,用了单个for循环打印,对初学者来说应该好理解点
工具类:
importjava.util.Calendar;
publicclassDaysTool{
privateintyear;
privateintmonth;
publicDaysTool(){}
publicDaysTool(intyear,intmonth){
this.year=year;
this.month=month;
}
/**
*根据年份和月份来得到打印月份的第一天是周几
*@return是一周的周几
*/
publicintWhatWeekDay(){
//创建Calendar对象
Calendarcalendar=Calendar.getInstance();
//设置calendar对象的年
calendar.set(Calendar.YEAR,this.year);
//设置calendar对象的月份,因为此处的月份是从零开始(0-11表示1-12月),所以我们输入的数值要减去1才是正确的月份
//(比如输入8月,接收数值8,但是因为Calendar的特殊月份计数,8代表的是"9月",所以减去1为7,才是正确的8月)
calendar.set(Calendar.MONTH,this.month-1);
//设置日期为打印月的第一天
calendar.set(Calendar.DATE,1);
//用get方法获取这一天是周几
intwhatDay=calendar.get(Calendar.DAY_OF_WEEK);
//Calendar从周日开始到周六结束,用1-7表示,这里为了方便,把其数值减1,得到周日到周六为0-6只需特殊处理周日即可
returnwhatDay-1;//得出这个月的第一天是周几
}
publicintWhatDayOfMonth(){
//实例化Calendar对象
Calendarcalendar=Calendar.getInstance();
//设置为打印年打印月的下一个月(参考WhatWeekDay方法中的月份注释,这里没减1)第一天.
//例:输入20182其实为2018年的3月
calendar.set(this.year,this.month,1);
//使上面的日期退一天得到打印月
calendar.add(Calendar.DATE,-1);
//获取日的数值
intmonthDay=calendar.get(Calendar.DATE);
returnmonthDay;
}
publicintgetYear(){
returnyear;
}
publicvoidsetYear(intyear){
this.year=year;
}
publicintgetMouth(){
returnmonth;
}
publicvoidsetMouth(intmouth){
this.month=mouth;
}
}
主类(包含了打印工具类)
importjava.util.Scanner;
publicclassPrintCalendar{
publicstaticvoidmain(String[]args){
//接收键盘录入年份和月份
Scannerscanner=newScanner(System.in);
System.out.print("请输入需要打印的年份:");
intyear=scanner.nextInt();
System.out.print("请输入需要打印的月份:");
intmonth=scanner.nextInt();
//创建日历工具类对象,并用带参构造初始化
DaysTooldt=newDaysTool(year,month);
//实例化打印工具类对象
PrintDayToolpd=newPrintDayTool();
System.out.println(String.format("\n即将打印%d年%d月日历",year,month)+"\n");
System.out.println("========================================================\n");
//调用打印工具类对象的printDay方法,传入年和月份
pd.printDay(dt.WhatDayOfMonth(),dt.WhatWeekDay());
System.out.println("========================================================");
}
}
classPrintDayTool{
//
/**
*打印日历方法,
*@paramdaysOfMouth传入参数,确定打印月份的天数
*@paramwhatDay传入参数,确定打印月份的第一天是周几
*/
publicvoidprintDay(intdaysOfMouth,intwhatDay){
intcount=0;//定制计数标记
System.out.print("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六");
//j从1开始到这个月的天数结束
for(intj=1;j<=daysOfMouth;j++){
count++;
//每打印七天就换行
if(count%7==1){
System.out.print("\n\n");
}
//如果这月的第一天是周日就把它置为0不打印额外制表符
if(whatDay==7)
whatDay=0;
//这个月的第一天是周几就额外打印几次制表符
while(whatDay>0){
System.out.print("\t\t");
whatDay--;
count++;
}
//打印天数
System.out.print(j+"\t\t");
}
//打印完日历换行
System.out.println("\n");
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。