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对万年历的制作(同步电脑上的万年历日期格式)相关推荐

  1. java中的日历_Java中的日历功能

    java.util.calendar类提供Java中的日历功能.是一个抽象类,提供在特定时间点和一组日历字段(例如YEAR,MONTH,DAY_OF_MONTH,HOUR等)之间进行转换的方法,以及用 ...

  2. java中用法实例_java中Calendar类用法实例详解

    本文实例讲述了java中Calendar类用法.分享给大家供大家参考,具体如下: java中的Calendar在开发中经常被忽略,这篇博客总结一下这个类,对后面项目中使用时期的时候有帮助. Calen ...

  3. java可视化日历_Java简单可视化日历程序

    涉及知识: 一.Date类 在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理.这里简单 ...

  4. java年份换算_java中日期的换算处理

    JAVA8中的日期API是JSR-310的实现,并且是工作在ISO-8601日历系统基础上的,但我们也可以在非ISO的日历上. JDK8的日期API大致分为以下几个包: 1 java.time包:JD ...

  5. java时间设置_JAVA中的时间操作

    java中的时间操作不外乎这四种情况: 1.获取当前时间 2.获取某个时间的某种格式 3.设置时间 4.时间的运算 好,下面就针对这四种情况,一个一个搞定. 一.获取当前时间 有两种方式可以获得,第一 ...

  6. java 表格 日历_Java JTable 实现日历的示例

    效果图: 主要思想:日历最核心的功能就是能显示某年某月对应的日期和星期几.因此只要实现传入具体的年份和月份,得到一组存放了日期的数组a[ ]即可.其中数组的大小设置成42,要考虑的问题是当月的第一天对 ...

  7. java 字符串用法_java中字符串的用法

    1.String中的每个字符都是一个16位的Unicode字符,用Unicode很容易表达丰富的国际化字符集,比如很好的中文支持.甚至Java的标识符都可以用汉字,但是没人会用吧(只在一本清华的< ...

  8. java 获取星期几_java中获取日期是星期几的两种方法

    java中取得指定日期是星期几可以采用下面两种方式取得日期是星期几:(推荐:java视频教程) 1.使用Calendar类//根据日期取得星期几 public static String getWee ...

  9. java 字符串总结_Java中字符串(String)总结

    先说说JDK API: JDK中包含大量的API类库,所谓API(Application Programming Interface,应用程序编程接口,这些功能以类的形式封装). JDK API包含的 ...

最新文章

  1. asp 随机读取ID之Access
  2. python 生产消费者_python之生产者消费者模型实现详解
  3. Navicat使用Instant Client创建连接到Oracle数据库的正确姿势
  4. iOS酷我音乐导出工具使用说明和原理介绍(提供下载链接及project源代码)
  5. C++继承体系下的对象构造
  6. 解决cookie写入问题
  7. leetcode 777. Swap Adjacent in LR String | 777. 在LR字符串中交换相邻字符(双指针)
  8. 使用python实现对于chineseocr的API调用
  9. Learning-Python【0】:Windows环境下Python2和Python3的安装
  10. XTU 1252 Defense Tower
  11. 【SAP解决方案干货合集】满满的干货,是您了解华为云SAP解决方案的必备利器
  12. matlab 省略号,matlab知识集锦 | 学步园
  13. python最优调配问题_Python实现的基于优先等级分配糖果问题算法示例
  14. html——attr与val、attr与prop、attr与css区别
  15. Linux下查看和设置环境变量
  16. 阿兹特克码(Aztec)的介绍及如何生成
  17. 随笔记:PPT渐变色
  18. HCIE-RS论述题QOS
  19. Matlab Shannon编码
  20. win10下cuda版本升级

热门文章

  1. 【笔记】Linux安装RabbitMQ
  2. Excel2007表格行列切换技巧
  3. 数据挖掘比赛入门_以去年阿里天猫推荐比赛为例
  4. 协方差分析 | ANCOVA (Analysis of Covariance)
  5. 第二章:我的大学(中篇)
  6. HTTP405报错:JSP 只允许 GET、POST 或 HEAD。Jasper 还允许 OPTIONS
  7. 如何让一款没什么差异的产品,从“好”变成“更好”?
  8. 邮件营销之bounce类型
  9. TXT 小说 自动分章+排序工具
  10. android 分区存储适配总结