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);

}

运行结果展示

16133d0c9f26e5a40338a3806180e645.png

2765baf2bb2005ef776e91eeb08ef6a2.png

c6a439ae10732edd4bf2414bf1196b48.png

3d30bfddd5b550c37358c273b2c9625b.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值