java电脑日历_Java中calendar对万年历的制作(同步电脑上的万年历日期格式)
Java编程中calendar对万年历的制作教程
使用到的方法:
1.日期类型的转换:
String----->Date
String str = "2020年05月27日 20:28:50";
//SimpleDateFormat格式化时间
//y:年yyyy:四位年
//M:月MM:两位月
//d:日dd:两位日
//H:小时HH:
//m:分钟mm:
//s:秒数ss:
//a:上午 下午
//E:星期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
注意:"2020年05月27日 20:28:50"和"yyyy年MM月dd日 HH:mm:ss"格式必须相同,否则会出错
Date date = null;
//捕获异常
try {
date = sdf.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println("日期为:"+date);
Date---->Calendar
Calendar cal = new GregorianCalendar();
cal.setTime(date);
System.out.println(cal.getTime());
2.add和roll的用法:
cal.add(Calendar.YEAR, -1)//代表时间往前倒一年
cal.add(Calendar.YEAR, +1)//代表时间往后走一年
cal1.add(Calendar.MONTH, -3); //代表月份往前走三个月,它会改变年
cal1.roll(Calendar.MONTH, -3); //代表月份往前走三个月,它不会改变年
3.时间的设置:
cal.set(Calendar.MONTH, 7);//修改月份
cal.set(Calendar.YEAR, 2021);//修改年份
使用add、roll、和设置时间时要先用静态工厂方法获取时间:格式
Calendar cal = Calendar.getInstance();
System.out.println(cal);
万年历的制作:
1.万年历主体结构的制作:
/**
* 万年历
*/
public class CalendarHome {
//创建一个全局变量的键盘扫描器
static Scanner key = new Scanner(System.in);
public static void main(String[] args) {
//获取当前的日期
Calendar cal = new GregorianCalendar();
//获取本月当前的日期
//将Calendar日期类型转换为date类型
Date date = cal.getTime();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月");
//将date---->String
String string = sdf.format(date);
System.out.println("当前时间为:"+string);
//打印日历的方法
showTime(cal);
while (true) {
//打印操作的帮助信息
help();
//接收用户输入的指令
int con = key.nextInt();
switch (con) {
case 1:
//查看上个月的日历
preMonth(cal);
break;
case 2:
//查看下个月的日历
nextMonth(cal);
break;
case 3:
//查看上年的日历
preoYear(cal);
break;
case 4:
//查看下年的日历
nextYear(cal);
break;
case 5:
//查看指定年月的日历
checkYearMonth(cal);
break;
default:
System.out.println("请输入正确的选项");
}
}
}
2.导入的包:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;
3.封装help方法(操作面板设计):
/**
* 打印操作的帮助信息
*/
private static void help() {
System.out.println("************************");
System.out.println("1.查看上个月的日历");
System.out.println("2.查看下个月的日历");
System.out.println("3.查看上年本月的日历");
System.out.println("4.查看下年本月的日历");
System.out.println("5.查看指定年月的日历");
System.out.println("************************");
System.out.println("请输入操作:");
}
4.封装preMonth方法:
/**
* 查看上个月的日历
*
*/
private static void preMonth(Calendar cal) {
//运用add的方法,获取上个月的日历
cal.add(Calendar.MONTH, -1);
showTime(cal);
}
5.封装nextMonth方法:
/**
* 查看下个月的日历
*
*/
private static void nextMonth(Calendar cal) {
// 运用add的方法,获取下个月的日历
cal.add(Calendar.MONTH, +1);
//调用showTime
showTime(cal);
}
6.封装preYear方法:
/**
* 查看上年的日历
*
*/
private static void preYear(Calendar cal) {
// 运用add的方法,获取上年的日历
cal.add(Calendar.YEAR, -1);
//调用showTime
showTime(cal);
}
7.封装nextYear方法:
/**
* 查看下年日历
*
*/
private static void nextYear(Calendar cal) {
// 运用add的方法,获取下年的日历
cal.add(Calendar.YEAR, +1);
//调用showTime
showTime(cal);
}
8.封装checkYearMonth方法:
/**
* 查看指定年月的日历
*
*/
private static void checkYearMonth(Calendar cal) {
//用int获取查询的当时的时间
int hour = cal.get(Calendar.HOUR_OF_DAY);
int minute = cal.get(Calendar.MINUTE);
//提示用户输入要查看的年
System.out.println("请输入要查看的年:(格式:2020-05)");
//接收用户输入的年份
String str = key.next();
//将String类型的日期转为date类型的
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
Date date = null;
//捕获异常
try {
date = sdf.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
//把date类型的日期转为Calendar类型的日期
cal.setTime(date);
//输出获取到的日期,这里显示的日期都是当月的1号日期
System.out.println(date);
//设置查询到的日期当时的时间
cal.set(Calendar.MINUTE, minute);
cal.set(Calendar.HOUR_OF_DAY, hour);
//调用showTime
showTime(cal);
}
运行结果展示
java电脑日历_Java中calendar对万年历的制作(同步电脑上的万年历日期格式)相关推荐
- java中的日历_Java中的日历功能
java.util.calendar类提供Java中的日历功能.是一个抽象类,提供在特定时间点和一组日历字段(例如YEAR,MONTH,DAY_OF_MONTH,HOUR等)之间进行转换的方法,以及用 ...
- java中用法实例_java中Calendar类用法实例详解
本文实例讲述了java中Calendar类用法.分享给大家供大家参考,具体如下: java中的Calendar在开发中经常被忽略,这篇博客总结一下这个类,对后面项目中使用时期的时候有帮助. Calen ...
- java可视化日历_Java简单可视化日历程序
涉及知识: 一.Date类 在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理.这里简单 ...
- java年份换算_java中日期的换算处理
JAVA8中的日期API是JSR-310的实现,并且是工作在ISO-8601日历系统基础上的,但我们也可以在非ISO的日历上. JDK8的日期API大致分为以下几个包: 1 java.time包:JD ...
- java时间设置_JAVA中的时间操作
java中的时间操作不外乎这四种情况: 1.获取当前时间 2.获取某个时间的某种格式 3.设置时间 4.时间的运算 好,下面就针对这四种情况,一个一个搞定. 一.获取当前时间 有两种方式可以获得,第一 ...
- java 表格 日历_Java JTable 实现日历的示例
效果图: 主要思想:日历最核心的功能就是能显示某年某月对应的日期和星期几.因此只要实现传入具体的年份和月份,得到一组存放了日期的数组a[ ]即可.其中数组的大小设置成42,要考虑的问题是当月的第一天对 ...
- java 字符串用法_java中字符串的用法
1.String中的每个字符都是一个16位的Unicode字符,用Unicode很容易表达丰富的国际化字符集,比如很好的中文支持.甚至Java的标识符都可以用汉字,但是没人会用吧(只在一本清华的< ...
- java 获取星期几_java中获取日期是星期几的两种方法
java中取得指定日期是星期几可以采用下面两种方式取得日期是星期几:(推荐:java视频教程) 1.使用Calendar类//根据日期取得星期几 public static String getWee ...
- java 字符串总结_Java中字符串(String)总结
先说说JDK API: JDK中包含大量的API类库,所谓API(Application Programming Interface,应用程序编程接口,这些功能以类的形式封装). JDK API包含的 ...
最新文章
- asp 随机读取ID之Access
- python 生产消费者_python之生产者消费者模型实现详解
- Navicat使用Instant Client创建连接到Oracle数据库的正确姿势
- iOS酷我音乐导出工具使用说明和原理介绍(提供下载链接及project源代码)
- C++继承体系下的对象构造
- 解决cookie写入问题
- leetcode 777. Swap Adjacent in LR String | 777. 在LR字符串中交换相邻字符(双指针)
- 使用python实现对于chineseocr的API调用
- Learning-Python【0】:Windows环境下Python2和Python3的安装
- XTU 1252 Defense Tower
- 【SAP解决方案干货合集】满满的干货,是您了解华为云SAP解决方案的必备利器
- matlab 省略号,matlab知识集锦 | 学步园
- python最优调配问题_Python实现的基于优先等级分配糖果问题算法示例
- html——attr与val、attr与prop、attr与css区别
- Linux下查看和设置环境变量
- 阿兹特克码(Aztec)的介绍及如何生成
- 随笔记:PPT渐变色
- HCIE-RS论述题QOS
- Matlab Shannon编码
- win10下cuda版本升级
热门文章
- 【笔记】Linux安装RabbitMQ
- Excel2007表格行列切换技巧
- 数据挖掘比赛入门_以去年阿里天猫推荐比赛为例
- 协方差分析 | ANCOVA (Analysis of Covariance)
- 第二章:我的大学(中篇)
- HTTP405报错:JSP 只允许 GET、POST 或 HEAD。Jasper 还允许 OPTIONS
- 如何让一款没什么差异的产品,从“好”变成“更好”?
- 邮件营销之bounce类型
- TXT 小说 自动分章+排序工具
- android 分区存储适配总结