首页 > 编程 > Java > 正文

java打印指定年月份的日历

2019-11-26 08:45:45
字体:
来源:转载
供稿:网友

本文实例为大家分享了java打印指定年月份日历的具体代码,供大家参考,具体内容如下

做了一个小的日历打印,没有使用数组,所以不能对日期进行操作,用了单个for循环打印,对初学者来说应该好理解点

工具类:

import java.util.Calendar;public class DaysTool { private int year; private int month; public DaysTool(){} public DaysTool(int year ,int month){  this.year = year;  this.month = month; } /**  * 根据年份和月份来得到打印月份的第一天是周几  * @return 是一周的周几  */ public int WhatWeekDay(){  //创建Calendar对象  Calendar calendar = 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方法获取这一天是周几  int whatDay = calendar.get(Calendar.DAY_OF_WEEK);  //Calendar从周日开始到周六结束,用1-7表示,这里为了方便,把其数值减 1 ,得到周日到周六为 0 - 6 只需特殊处理周日即可  return whatDay-1; //得出这个月的第一天是周几 } public int WhatDayOfMonth(){  //实例化Calendar对象  Calendar calendar = Calendar.getInstance();  //设置为打印年打印月的下一个月(参考WhatWeekDay方法中的月份注释 ,这里没减1)第一天.  //例:输入 2018 2 其实为2018年的3月  calendar.set(this.year,this.month,1);  //使上面的日期退一天 得到打印月  calendar.add(Calendar.DATE,-1);  //获取日的数值  int monthDay =calendar.get(Calendar.DATE);  return monthDay; } public int getYear() {  return year; } public void setYear(int year) {  this.year = year; } public int getMouth() {  return month; } public void setMouth(int mouth) {  this.month = mouth; }}

主类(包含了打印工具类)

import java.util.Scanner;public class PrintCalendar { public static void main(String[] args) {  //接收键盘录入年份和月份  Scanner scanner = new Scanner(System.in);  System.out.print("请输入需要打印的年份: ");  int year = scanner.nextInt();  System.out.print("请输入需要打印的月份: ");  int month = scanner.nextInt();  //创建日历工具类对象,并用带参构造初始化  DaysTool dt = new DaysTool(year,month);  //实例化打印工具类对象  PrintDayTool pd = new PrintDayTool();  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("========================================================"); }}class PrintDayTool{ // /**  * 打印日历方法,  * @param daysOfMouth 传入参数,确定打印月份的天数  * @param whatDay 传入参数,确定打印月份的第一天是周几  */ public void printDay(int daysOfMouth,int whatDay){  int count = 0; //定制计数标记  System.out.print("星期日/t星期一/t星期二/t星期三/t星期四/t星期五/t星期六");  //j从1开始 到这个月的天数结束  for(int j = 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"); }}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表