java最简单的打印日历表_java实现打印日历
本文实例为大家分享了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实现打印日历相关推荐
- java web 打印图片_java web打印总结
the contents you don't want to print 如果需要设置不打印区域,加入如下样式: 其实就是引用了noprint样式的控件不打印: 下面是media的相关 media类型 ...
- java 打印图片_java 实现打印(图片和文本)
// 打印内容到指定位置 public void printContent(Map mymap ) { printStr = "打印测试内容";// 获取需要打印的目标文本 if ...
- java 网络通讯用什么流_Java中打印流,网络通信协议,TCP通信的基础介绍
1-1.打印流 java.io.PrintStream:打印流 PrintStream 为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式. PrintStream特点: 1).只负责数据 ...
- java打印数组_Java中打印数组内容的方式有哪些?
下面是几种常见的打印方式. 方法一:使用循环打印. public class Demo { public static void main(String[] args) { String[] info ...
- 使用java实现打印功能_java实现打印功能有没有比较好的方式?
Java 实现打印文件 Java 原生打印: 有一下几种实现方式: 实现打印对象:实现Printable接口 使用工具箱自带的打印对象(Toolkit.getDefaultToolkit().getP ...
- java打印正三角形_java实现打印正三角的方法
本文实例为大家分享了java实现打印正三角的具体代码,供大家参考,具体内容如下 代码: package BasicType; /** * 封装一个可以根据用户传入值来打印正三角的方法 * @autho ...
- java中简单的if语句_java中if语句的写法
if语句 if 语句的语法如下:if(布尔表达式){ //如果布尔表达式为true将执行的语句 } 如果布尔表达式的值为 true,则执行 if 语句中的代码块,否则执行 if 语句块后面的代码. 免 ...
- java创建简单的学生类_Java创建一个学生类步骤代码分享
创建一个表示学生的实体类Student,其中有学生姓名.性别和年龄信息,要求使用属性来表示学生信息,最终编写测试代码. 首先定义一个名为Student的类:public class Student { ...
- java打印三角形_java基础打印三角形
/* 实心等边三角形 */ class Triangle2{ public static void main(String[] args){ int n=5; for(int i=0;i for(in ...
- java生成指定长度的空格_java如何打印出任意给定的空格
展开全部 可以使用String.format(String format,Object...args);进行格式化字符串,然后打e68a8462616964757a686964616f31333363 ...
最新文章
- SQL Server中TOP子句可能导致的问题以及解决办法
- Python程序设计之如何设置统一编码格式
- 非常好的bert中文预训练资料
- 【OpenCV入门学习笔记1】:Mat对象的指针操作和掩膜操作
- ROS单内网服务器源IP限速\单个下载链接限速
- 实战系列-Spring Boot跨域解决方案
- 微信公布6月朋友圈十大谣言 包括不打疫苗不让上飞机高铁等
- java gc 随记
- appium+python的APP自动化(1)
- 张量分解在无线通信和MIMO雷达中的概述
- 如何用Matlab计算相关系数和偏相关系数
- python微积分求面积_用Python学微积分(微积分应用)
- 【UE·蓝图】UE4蓝图MediaPlayer注意事项
- [转]游戏多开的原理
- 鼠标移上去变小手样式
- 方向α与《孙子兵法》的基本原则
- 2. 监督学习之分类
- 带你了解什么是抽象类,抽象类不能够被实例化为什么还有构造方法?
- Advanced SystemCare Pro 中文绿色特别便携正式版一款易于使用的 Windows 电脑优化工具
- android屏幕坏 操作手机,手机屏幕碎了怎么备份操作?
热门文章
- 黑马程序员_Java基础_枚举 和 单例模式实例
- win10产品密钥查看
- 学习C++:C++基础(一)类和对象及C++对C的扩展
- 苹果手机怎么编辑word文档_怎么用苹果手机扫描文件转换成Word?这个方法我一定要告诉你...
- 基于阿里云Aliddns动态域名解析的客户端PHP实现与服务器端(包含C与PHP)实现
- excel转置怎么操作_Excel里掌握这些小技巧,让你的工作更轻松
- 写出Oracle分页语句,Oracle分页语句
- C# 批量修改文件名称
- 微信Android端如何安全降级
- 计算机部分应用显示模糊,win10系统打开部分软件字体总显示模糊的解决方法