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

效果图

代码:

/**

*需要实现的目标:根据输入的年月打印出本月的日历表

*说明:1900年1月1日刚好是星期一,所以需要计算出从1900 年到当前年月的前一个月总

*共经历了几天,然后根据每周七天,用总天数除以7取余数,此余数就是上个月所占到星

*期几,也就是每月开头有的空格数,然后打印此空格数,在打印此空格数后再依次打印本

*月的各天数。

**/

//引入Scanner类,用于从控制台输入年月

import java.util.Scanner;

//程序开始

class Rili{

//主方法,程序执行的入口

public static void main(String[] args){

inputYearAndMonth();

}

/**

*此方法用于从控制台输入年、月

**/

public static void inputYearAndMonth(){

Scanner sc = new Scanner(System.in);

System.out.println("请输入年");

int year = sc.nextInt();

System.out.println("请输入月");

int month = sc.nextInt();

printRiLi(year , month);

}

/**

* 打印日历

**/

public static void printRiLi(int year,int month){

//一周七天,定义一个计数器,打印一天加1(包括空白)如果%7等于0的话就需要换行

int count = 0;

System.out.println("\t---下面打印的是:"+year+"年"+month+"月的日历表---");

System.out.println();

System.out.println("星期一\t星期二\t星期三\t星期四\t星期五\t星期六\t星期日");

for(int i = 1;i <= getSpace(year,month);i++){

System.out.print("\t");

count +=1;

}

for(int i = 1;i <= getDaysOfMonth(year ,month);i++){

System.out.print(i+"\t");

count +=1;

if(count % 7 ==0){

System.out.println();

}

}

}

/**

*判断年份是平年还是闰年(用于判断一年有365天或366天,并用于判断2月有28天或29天),返回值是true(29天、366天)和flase(28天、365天)

**/

public static boolean isLoopYear(int year){

return (year %4 ==0 && year % 100 !=0) || (year % 400 == 0);

}

/**

* 获得某月的天数

**/

public static int getDaysOfMonth(int year ,int month){

int days = 0;

switch(month){

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

days = 31;

break;

case 4:

case 6:

case 9:

case 11:

days = 30;

break;

case 2:

days = isLoopYear(year)? 29:28;

break;

}

return days;

}

/**

* 获得自1900年至当前年、月经过的总天数

* 实现:1900年到year - 1 年的总天数

* 当年至month - 1 的总在数

* 两个天数之和相加

**/

public static int getTotalDays(int year , int month){

int daysofyear = 0;

int daysofmonth = 0;

for(int i = 1900;i < year;i++){

daysofyear += isLoopYear(i)? 366:365;

}

for(int i = 1; i < month; i++){

daysofmonth += getDaysOfMonth(year,i);

}

return daysofyear+daysofmonth;

}

/**

* 利用总天数模7取余,得到所需要打印的空格数

**/

public static int getSpace(int year,int month){

int allSpace = getTotalDays(year,month) % 7;

return allSpace;

}

}

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

java最简单的打印日历表_java实现打印日历相关推荐

  1. java web 打印图片_java web打印总结

    the contents you don't want to print 如果需要设置不打印区域,加入如下样式: 其实就是引用了noprint样式的控件不打印: 下面是media的相关 media类型 ...

  2. java 打印图片_java 实现打印(图片和文本)

    // 打印内容到指定位置 public void printContent(Map mymap ) { printStr = "打印测试内容";// 获取需要打印的目标文本 if ...

  3. java 网络通讯用什么流_Java中打印流,网络通信协议,TCP通信的基础介绍

    1-1.打印流 java.io.PrintStream:打印流 PrintStream 为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式. PrintStream特点: 1).只负责数据 ...

  4. java打印数组_Java中打印数组内容的方式有哪些?

    下面是几种常见的打印方式. 方法一:使用循环打印. public class Demo { public static void main(String[] args) { String[] info ...

  5. 使用java实现打印功能_java实现打印功能有没有比较好的方式?

    Java 实现打印文件 Java 原生打印: 有一下几种实现方式: 实现打印对象:实现Printable接口 使用工具箱自带的打印对象(Toolkit.getDefaultToolkit().getP ...

  6. java打印正三角形_java实现打印正三角的方法

    本文实例为大家分享了java实现打印正三角的具体代码,供大家参考,具体内容如下 代码: package BasicType; /** * 封装一个可以根据用户传入值来打印正三角的方法 * @autho ...

  7. java中简单的if语句_java中if语句的写法

    if语句 if 语句的语法如下:if(布尔表达式){ //如果布尔表达式为true将执行的语句 } 如果布尔表达式的值为 true,则执行 if 语句中的代码块,否则执行 if 语句块后面的代码. 免 ...

  8. java创建简单的学生类_Java创建一个学生类步骤代码分享

    创建一个表示学生的实体类Student,其中有学生姓名.性别和年龄信息,要求使用属性来表示学生信息,最终编写测试代码. 首先定义一个名为Student的类:public class Student { ...

  9. java打印三角形_java基础打印三角形

    /* 实心等边三角形 */ class Triangle2{ public static void main(String[] args){ int n=5; for(int i=0;i for(in ...

  10. java生成指定长度的空格_java如何打印出任意给定的空格

    展开全部 可以使用String.format(String format,Object...args);进行格式化字符串,然后打e68a8462616964757a686964616f31333363 ...

最新文章

  1. SQL Server中TOP子句可能导致的问题以及解决办法
  2. Python程序设计之如何设置统一编码格式
  3. 非常好的bert中文预训练资料
  4. 【OpenCV入门学习笔记1】:Mat对象的指针操作和掩膜操作
  5. ROS单内网服务器源IP限速\单个下载链接限速
  6. 实战系列-Spring Boot跨域解决方案
  7. 微信公布6月朋友圈十大谣言 包括不打疫苗不让上飞机高铁等
  8. java gc 随记
  9. appium+python的APP自动化(1)
  10. 张量分解在无线通信和MIMO雷达中的概述
  11. 如何用Matlab计算相关系数和偏相关系数
  12. python微积分求面积_用Python学微积分(微积分应用)
  13. 【UE·蓝图】UE4蓝图MediaPlayer注意事项
  14. [转]游戏多开的原理
  15. 鼠标移上去变小手样式
  16. 方向α与《孙子兵法》的基本原则
  17. 2. 监督学习之分类
  18. 带你了解什么是抽象类,抽象类不能够被实例化为什么还有构造方法?
  19. Advanced SystemCare Pro 中文绿色特别便携正式版一款易于使用的 Windows 电脑优化工具
  20. android屏幕坏 操作手机,手机屏幕碎了怎么备份操作?

热门文章

  1. 黑马程序员_Java基础_枚举 和 单例模式实例
  2. win10产品密钥查看
  3. 学习C++:C++基础(一)类和对象及C++对C的扩展
  4. 苹果手机怎么编辑word文档_怎么用苹果手机扫描文件转换成Word?这个方法我一定要告诉你...
  5. 基于阿里云Aliddns动态域名解析的客户端PHP实现与服务器端(包含C与PHP)实现
  6. excel转置怎么操作_Excel里掌握这些小技巧,让你的工作更轻松
  7. 写出Oracle分页语句,Oracle分页语句
  8. C# 批量修改文件名称
  9. 微信Android端如何安全降级
  10. 计算机部分应用显示模糊,win10系统打开部分软件字体总显示模糊的解决方法