重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章给大家介绍怎么在java中打印指定年月份的日历,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
揭东网站制作公司哪家好,找成都创新互联!从网页设计、网站建设、微信开发、APP开发、自适应网站建设等网站项目制作,到程序开发,运营维护。成都创新互联于2013年开始到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联。
工具类:
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"); } }
关于怎么在java中打印指定年月份的日历就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。