java 制作简易日历_Java制作简单日历
1.用for循环、switch
以1990.01.01作为参考
public class Demo_9 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("输入年、月(如:2020 01):");
int year = scan.nextInt();
int month = scan.nextInt();
int daysum = 0; // 天数加和
int week = 0; //初始化星期
//判断闰年,并将每年的天数相加
for (int i = 1990; i < year; i++) {
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
daysum += 366;
} else {
daysum += 365;
}
}
//用循环将最后一年每个月天数相加
for (int i = 1; i < month; i++) {
switch (i) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
daysum += 31;
break;
case 2:
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
daysum += 29;
break;
} else {
daysum += 28;
break;
}
default:
daysum += 30;
}
}
//储存所查询的当前月的天数
int day = 0;
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day = 31;
break;
case 2:
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
day = 29;
break;
} else {
day = 28;
break;
}
default:
daysum += 30;
day = 30;
}
week = daysum % 7 + 1; //计算当前月的一号星期几
//制作日历
System.out.println("一\t二\t三\t四\t五\t六\t日\t");
for (int i = 1; i < day + week; i++) {
if (i < week) {
System.out.print("\t");
} else {
if ((i - 1) % 7 == 0) {
System.out.println();
}
System.out.print((i - week + 1) + "\t");
}
}
}
}
2.将重复的代码封装调用
public class Demo {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("请输入 年 月(2000 1):");
int year = scan.nextInt();
int month = scan.nextInt();
int daysum = dayForMonth(year, month);
int week = dayForYear(year, month) % 7 + 1;
if (year < 1990) {
System.out.println("抱歉!1990年以前暂不支持!!!");
return;
}
if (daysum < 0) {
System.out.println("输入的月份有误,请重新输入!");
return;
}
System.out.println("\t\t" + " " + year + "年" + month + "月");
System.out.println("一\t二\t三\t四\t五\t六\t日\t");
for (int i = 1; i <= daysum + week - 1; i++) {
if (i < week) {
System.out.print("\t");
} else {
System.out.print(i - (week - 1) + "\t");
if (i % 7 == 0) {
System.out.println("\n");
}
}
}
}
// 闰年的判断
public static boolean isLeapYear(int year) {
if (year % 400 == 0 || year % 4 == 0 && year % 400 == 0) {
return true;
} else {
return false;
}
}
// 每个月的天数
public static int dayForMonth(int year, int month) {
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
case 4:
case 6:
case 9:
case 11:
return 30;
case 2:
if (isLeapYear(year)) {
return 29;
} else {
return 28;
}
}
return -1;
}
// 从参考值到所求值的天数
public static int dayForYear(int year, int month) {
int day = 0;
for (int i = 1990; i < year; i++) {
if (isLeapYear(i)) {
day += 366;
} else {
day += 365;
}
}
for (int i = 0; i < month; i++) {
day += dayForMonth(year, i);
}
return day;
}
}
3.总结
对于第一种方法,将一些代码重复使用,书写麻烦,观看不简洁。
对于第二种,将重复使用的代码进行封装,直接调用,程序出错修改方便。
小白还是第一次写博客,作为一名Java的初学者,在写第一种方法时,知识存储量不够,另外思维不够严谨,没有将出错情况编写进入,输入错误的数据也会出现答案,小白将自己的学习过程发出来,希望各位大佬们指点,一起加油进步。
java 制作简易日历_Java制作简单日历相关推荐
- java gui 日历_Java实现简单日历小程序 Java图形界面小日历开发
今天给大家介绍一下如何用Java swing开发一款简单的小日历,下面我们来看代码: 首先创建一个CalendarBean类,用于基本的日期计算: package other1; import jav ...
- java课程设计日历_java课程设计日历记事本赵锐.doc
java课程设计日历记事本赵锐.doc 2本科生课程设计课程名称JAVA程序设计课程设计题目日历记事本学号201440930252学生姓名赵锐所在专业2014计算机学院所在班级信工2班成绩课程设计时间 ...
- java中的日历_Java中的日历功能
java.util.calendar类提供Java中的日历功能.是一个抽象类,提供在特定时间点和一组日历字段(例如YEAR,MONTH,DAY_OF_MONTH,HOUR等)之间进行转换的方法,以及用 ...
- java编写简易计算器_java实现简易计算器功能
本文为大家分享了java实现简易计算器功能,具体内容如下 题目: 编写一个模拟计算器的程序.在面板中添加一个文本框(显示按键及运算结果). 10个数字按钮(0~9).4个运算按钮(加.减.乘.除).一 ...
- java简易日历程序报告_Java实现简单日历小程序 Java图形界面小日历开发
今天给大家介绍一下如何用Java swing开发一款简单的小日历,下面我们来看代码: 首先创建一个CalendarBean类,用于基本的日期计算: package other1; import jav ...
- java 日历界面_Java实现简单日历小程序 Java图形界面小日历开发
今天给大家介绍一下如何用java swing开发一款简单的小日历,下面我们来看代码: 首先创建一个calendarbean类,用于基本的日期计算: package other1; import jav ...
- java制作excel报表_java制作Excel报表简单易用(拿来即用)
java制作Excel报表简单易用 本程序是java程序 本程序是通过jxl.jar来实现的. 最下面会贴出代码 完整例子下载(我放在百度云盘了): http://www.doczj.com/doc/ ...
- java计算器制作教学视频_java实例——简单计算器的制做
本文章由xin3721视频教程网发布,转载请注明出处. 这是一个不错的计算器经过测试无误,现将代码公布供大家参考学习. import java.awt.*; import java.awt.event ...
- java中实现工厂日历_Java实现的日历功能完整示例
本文实例讲述了java实现的日历功能.分享给大家供大家参考,具体如下: 应用名称:Java日历 用到的知识:Java GUI编程,日期操作 开发环境:win8+eclipse+jdk1.8 功能说明: ...
最新文章
- php中sql where,sql?where
- jQuery计算器插件
- 无为职业学校计算机班,致盐亭职中2000级计算机三班全体同学的一封信
- 50行以上c语言程序代码,C语言非常简单的字符统计程序50行
- 删除元素值最大的结点
- CSRF跨站请求伪造漏洞
- SAP SEGW 事物码里的 ABAP 类型和 EDM 类型映射的一个具体例子
- 2021年茶艺师(初级)考试题库及茶艺师(初级)考试技巧
- Pandas数据分析实战(1)——探索Chipotle快餐数据
- 学计算机的女生选择公务员还是考研,女生本科毕业!考研好,还是考公务员更好?...
- C语言数据结构-程序设计与算法基础II-电大同步进度
- 谷歌学术国内镜像网址收集-查文献
- pico-ctf-2013 overflow-2
- RT_thread STM32通用Bootloader 做OTA升级
- d3.js操作svg
- fcpx插件Stupid Raisins Sale Pop for Mac(37种促销标题模板)
- 一个程序员的丰功伟绩
- 《管理学》期末第一次复习
- 中国电信天翼开放平台全面释放开放合作
- Android动画的优化
热门文章
- 前端学习之Bootstrap入门 网格系统
- 行锁(锁住的是一行记录)
- 【项目实战】——USB双路继电器电脑控制灯的开关(Python)
- unity3d 模拟电脑实现_基于.Unity3D的三维虚拟电脑组装实验系统开发毕业设计(含源文件).doc...
- 【源码讲解】Spring事务是如何应用到你的业务场景中的?
- SSH和JSF+EJB+JPA的比较
- 分享一款意想不到好用的手机PDF编辑器
- 【Java】1-100之间所有自然数的和(while和for方法)
- C4D模型工具—偏移
- FFmpeg基础:获取音视频的各种编码参数