java实现简单万年历
思路:
1、算出当前月份的第一天与1900/1/1 的天数之差 day
2、将day%7得到当前月的第一天是星期几
3、循环打印日历
代码实现:
import java.util.Calendar;
import java.util.Scanner;public class Test {public static void main(String[] args) {Scanner input = new Scanner(System.in);//1.万年历//实例化两个日历对象,一个设置为1900/1/1 一个设置为你要查询的日期Calendar calendar1 = Calendar.getInstance();Calendar calendar2 = Calendar.getInstance();//年、月int year,month;System.out.print("请输入年、月:");year = input.nextInt();month = input.nextInt();//分别设置两个日历的年份和月份calendar1.set(year,month,1);calendar2.set(1900,1,1);//月份从0开始,所以设置月份就需要月份-1calendar1.set(Calendar.MONTH,month-1);int day = getDaysBetween(calendar1,calendar2);//将天数差%7得到当前月份第一天是星期几day %= 7;System.out.println("一\t二\t三\t四\t五\t六\t日");//如果day%7==0,表示当前月份第一天是星期日if(day == 0)day=7;//输出day-1个\tfor(int i = 1; i < day; i++){System.out.print("\t");}//getActualMaximum 获得该月份中天数的最大值for(int i = 1; i <= calendar1.getActualMaximum(Calendar.DAY_OF_MONTH); i++){System.out.print(i + "\t");if((i+day-1)%7 == 0) //当 (i+day-1)%7 == 0 时,表示当天为星期日,需要换行System.out.println();}}/*** 获得两个日期间天数差* @param day1 日期1 用户查询日期* @param day2 日期2 1900/1/1* @return 天数差*/public static int getDaysBetween(Calendar day1,Calendar day2){//得到当前时间在一年中的天数int days = day1.get(Calendar.DAY_OF_YEAR);//获得用户输入的年份int y1 = day1.get(Calendar.YEAR);//计算1900/1/1日 与 y1/1/1日的天数差if(day2.get(Calendar.YEAR) != y1){day2 = (Calendar)day2.clone();do{days += day2.getActualMaximum(Calendar.DAY_OF_YEAR);day2.add(Calendar.YEAR, 1);}while(day2.get(Calendar.YEAR) != y1);}return days;}
}
结果:
java实现简单万年历相关推荐
- java 简单万年历_JAVA实现的简单万年历代码
本文实例讲述了JAVA实现的简单万年历.分享给大家供大家参考,具体如下: import java.util.Scanner; public class PrintCalendar { public s ...
- java 简单万年历_java简单万年历
Java万年历源代码_幼儿读物_幼儿教育_教育专区.. import java.awt.*; import java.awt.event.*; import javax.swing.*; import ...
- java 简单万年历,java万年历简单实例
本文实例讲述了JAVA实现的简单万年历. 实现思路具体如下: 已知1900年1月1日星期一判断是否闰年 指定年月返回当月的天数 返回一年的总天数 返回距离1900年1月到指定年月的上一个月的总天数 实 ...
- java简单通讯录的实现02person类_用java实现简单的小游戏(你一定玩过)
用java实现简单的小游戏(你一定玩过) 对于java初学者来说,通过一些学习小游戏来对swing学习以及对java基础的学习是一个好的方法,同时也给学习带来了很多的乐趣,接下来就给大家分享一个jav ...
- java实现简单窗体小游戏----球球大作战
java实现简单窗体小游戏----球球大作战 需求分析 1.分析小球的属性: 坐标.大小.颜色.方向.速度 2.抽象类:Ball 设计类:BallMain-创建窗体 BallJPanel- ...
- Java JNI简单实现
Java JNI简单实现 JNI(Java Native Interface)允许了Java和C&C++进行交互?这不折腾人嘛! 一.JNI简述 http://baike.baidu.com/ ...
- java实现账号单一ip登录,使用Java实现简单后台访问并获取IP示例
使用Java实现简单后台访问并获取IP示例 发布时间:2020-10-28 21:57:57 来源:亿速云 阅读:92 作者:Leah 使用Java实现简单后台访问并获取IP示例?针对这个问题,这篇文 ...
- 用limit 实现java的简单分页
https://blog.csdn.net/xinyuezitang/article/details/84324359 用limit 实现java的简单分页 xinyuezitang 2018-11- ...
- redis java应用_redis在JAVA的简单应用
reids是一个高性能的key-value数据库.它存储的value支持各种类型的数据,如String,List,set,hash类型.在此基础上,各种不同方式的排序. 本文不具体争对redis数据库 ...
最新文章
- 谨慎的Waymo CEO:未来几十年,自动驾驶无法做到无处不在
- [Elasticsearch] 全文搜索 (一) - 基础概念和match查询
- win8.1 计算机放在桌面,Win8.1怎么把开始屏幕中的程序放到桌面?
- POI如何自定义单元格背景颜色
- ionic4 打包ios_学习Ionic 4并开始创建iOS / Android应用
- c语言作业题五六章答案,数据结构(C语言版)第五六章习题答案
- mysql 左连接 和全连接_mysql左连接,右连接,内连,全连
- php怎么连接数据库6,PHP连接数据库的步骤
- matlab虚拟现实之使用V-Realm Builder2建模
- bat中冒号的作用(注释 ,跳转, 截取、替换字符串)
- WINDOWS下获取目录环境变量的C代码
- web service中配置tcp/ip监视器
- 计算机附件中的超级终端,windows10系统中附件中没有超级终端怎么解决
- 基于Hadoop的hbase安装
- veeam安装和部署_Veeam Backup Replication 8 安装配置
- 全面拆解携程云原生实践,打造智能弹性的云端酒店直连系统!
- 边缘计算的架构、挑战与应用
- 我模仿了一个自助装机的页面,可是有一个功能一直实现不了。请求高手帮我看看。
- 智能手环guard日志获取-兔盯云
- Win10自带OpenSSH的使用
热门文章
- 2022大三计算机 | 保研面试 | 专业课(数据结构、计组等) 数学(离散等) | 资料整理
- 瀑布模型、快速原型模型、增量模型、螺 旋模型的优缺点,说明每种模型的使用范围
- 干电池升压IC,电流大,功耗低
- 2021牛客暑期多校训练营2 F Girlfriend (阿波罗尼斯圆+简单几何)
- java split 顺序_Java的split方法说明
- OpenGL Partical System by Transform Feedback
- DevOps黄了,平台工程火了?非也!
- vm虚拟机安装网络适配器驱动卡死/无响应/无限等待状态
- 坝上草原及闪电湖两日游流水帐:)
- GBASE风采|南大通用与天津农商行羽毛球联谊赛圆满举行