java打印指定年月份的日历

本文实例为大家分享了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");
 }
}

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

(0)

相关推荐

  • Java实现按年月打印日历功能【基于Calendar】

    本文实例讲述了Java实现按年月打印日历功能.分享给大家供大家参考,具体如下: import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class CalendarBook { public static void main(String[] args) throws ParseException { C

  • java打印指定年月的日历

    本文实例为大家分享了Java打印指定年月日历的具体代码,供大家参考,具体内容如下 日历如下: 程序如下: //打印指定年月的日历 public class PrintCalendar { public static void main(String[] args) { int year=2013; int month=12; printMonth(year,month); } private static void printMonth(int year, int month) {//打印日历

  • java打印指定年月份的日历

    本文实例为大家分享了java打印指定年月份日历的具体代码,供大家参考,具体内容如下 做了一个小的日历打印,没有使用数组,所以不能对日期进行操作,用了单个for循环打印,对初学者来说应该好理解点 工具类: import java.util.Calendar; public class DaysTool { private int year; private int month; public DaysTool(){} public DaysTool(int year ,int month){ th

  • Java基于Calendar类输出指定年份和月份的日历代码实例

    这篇文章主要介绍了Java 使用Calendar类输出指定年份和月份的日历,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码如下 package com.cyl.test3; import java.util.Calendar; import java.util.Scanner; public class RiLi { public static void main(String[] args){ int year= 2020; int mo

  • Java使用Calendar类实现动态日历

    本文实例为大家分享了Java使用Calendar类实现动态日历的具体代码,供大家参考,具体内容如下 题目: 使用Calendar类实现一个动态日历,要求能够通过输入一个年份,月份显示当月的日历布局,并且将周六周天使用"[]"包裹起来,另外要求如果显示为当月日历时,把当天的日期使用"*"标记出来. 步骤分析: 1.打印日历 1.1当月总天数 1.2当月第一天是周几(注意:月份是从0开始,星期是从周日(1)开始) 2.周末用[]包裹 3.当前日期前加*号 代码实现: p

  • 利用Java编写一个属于自己的日历

    目录 问题提出 一点提示 源码分享 问题提出 编写程序,输入年份,打印出该年的年历(12个月的),效果如下图所示. 一点提示 使用 Java 自带的 Calendar 类得到一个 Calendar 类对象,然后我们可以去得到每个月的第一天是星期几 Calendar 类不能直接 new 得到对象,需要使用 getInstance() 函数 //得到一个Calendar对象 Calendar c = Calendar.getInstance(); Calendar 类的 set 可以设置自己想要的日

  • java打印国际象棋棋盘的方法

    本文实例为大家分享了java打印出国际象棋棋盘的具体代码,供大家参考,具体内容如下 问题分析 观察国际象棋棋盘的图案,可以发现其中的规律:棋盘由八行八列黑白方块相间组成,可以用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方块还是白方块.这里我们使用了Swing的标签组件JLable,通过设置JLabel组件的背景色和透明度来实现黑白方块. (1)确定程序框架 这是一个绘图案例,这里我们采用JFrame创建窗口,然后在窗口里添加JLabel标签组件,通过前面的问题分析可知,JLabel标

  • Java打印流原理及实例详解

    这篇文章主要介绍了Java打印流原理及实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 平时我们在控制台打印输出,是调用print方法和println方法完成的,这两个方法都来自于java.io.PrintStream类,该类能够方便地打印各种数据类型的值,是一种便捷的输岀方式. PrintStream类 PrintStream类,为其他输出流添加了功能,使他们能够方便的打印各种数据值表示格式. PrintStream类的特点: 只负责数

  • 如何通过Java打印Word文档

    这篇文章主要介绍了如何通过Java打印Word文档,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Java 打印Word文档 本文介绍如何在Java程序中通过物理打印机和虚拟打印机来打印Word文档的方法.文中使用了类库Spire.Doc for Java,可通过 官网下载jar文件并导入程序或者直接通过maven仓库安装导入. [示例1]通过物理打印机打印 import com.spire.doc.Document; import com.s

  • Java将时间按月份分段的实现思路与方法

    前言 有时候我们得到一段时间,需要将时间按照月份将这一段时间来分段.比如开始时间为 2020/07/15 至 2021/07/05 按照月份来将数据分组展示,所以需要将这端时间分为以下几段: 2020/07/15 ~ 2020/08/01 2020/08/01 ~ 2020/09/01 2020/09/01 ~ 2020/10/01 ... 2021/06/01 ~ 2021/07/01 2021/07/01 ~ 2021/07/05 一.知识点 将时间分类主要是用到了Java中的 Calend

  • 分享java打印简单图形的实现代码

    我们平时都是使用的画图工具进行简单图形的绘制,今天我们使用java打印一些简单的图形 实现代码如下 package test; /** * * @author hanzel * @打印图形 * */ public class Array { public static void main(String[] args) { //打印长方形 int[] a = new int[10]; for(int i=0 ;i<a.length;i++){ for(int j=0;j<a.length;j++

随机推荐