目录
一、Math类
1.主要用途
2.如何使用
(1)导包
(2)记住常用的方法名
(3)选择适当的场景,对其应用
3.常用方法整理
二、Arrays类
1.主要用途
2.使用方式同Math类相同
3.常用方法
三、Calandar类(日历类)
1.主要用途
2.使用方法
3.总结
四、Date类以及SimpleDateFormat类
1.使用场景
2.使用方式
3.总结
(1)方法总结
(2)自定义格式要求总结
五、使用案例举例
1.题目
2.示例
3.代码
六、全文思维导图
一、Math类
1.主要用途
Java中的math类主要可以被我们使用在一些需要基本数学运算编写的代码当中,包括但不限于求最大最小绝对值、向上向下取整、求三角函数以及求指数。
2.如何使用
(1)导包
这些常用类都是Java官方帮我写好的一些类,它保存在我们的电脑上面。如果我们想要对其使用,我们就必须将其导包。
(2)记住常用的方法名
这些方法大多都是static修饰的静态方法,当我们想要对其使用的时候,我们必须通过类名.方法名的方式对其调用,因其记住其方法名是你可以熟练使用的第一步。
(3)选择适当的场景,对其应用
3.常用方法整理
二、Arrays类
1.主要用途
arrays类主要被应用于对一些数组的处理,当我们可以熟悉的知道它中有的方法,我们便可以在编写程序的时候,对数组的快速且准确高效的处理。
2.使用方式同Math类相同
3.常用方法
三、Calandar类(日历类)
1.主要用途
当我们在使用Java语言编写程序时,其中如果涉及到需要日期、时间、年月日等一系列的操作时,如果我们不可以很好的掌握这一个常用类及其中包含的常用方法时,我们将对这些问题无从下手。
2.使用方法
Calander类为抽象类,说明我们不能通过new的方式来获得实例,因此Calendar提供了一个类方法getInstance(),以获得此类型的一个通用的对象。
例:Calendar cr=Calendar.getInstance();
3.总结
calander类中常用属性以及注意事项
四、Date类以及SimpleDateFormat类
1.使用场景
(1)Date的使用场景
当我们在编程时如果涉及到需要计算两个时间的时间差等问题时,我们往往需要使用的这个常用类。他所具有的实际含义是表示特定的瞬间与时间原点所距离的时间,精确到毫秒。
时间的原点:公元1970年 一月一日,午夜0:00:00 对应的毫秒值就是0。
(2)SimleDateFormat类的使用场景
DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。
因为DateFormat类是一个抽象类,在实际应用时我们常常使用其直接子类SimpleDateFormat类。其作用就在于:我们可以通过其实现将我们输入的文本转化为日期,将日期转化为文本。
2.使用方式
常常Date类和SimpleDateFormat类结合使用,Date类的出现是为了计算,而后者是为了架起用户输入信息和计算机处理信息的相通。
3.总结
(1)方法总结
(2)自定义格式要求总结
y | 年份。一般用 yy 表示两位年份,yyyy 表示 4 位年份 | 使用 yy 表示的年扮,如 11; 使用 yyyy 表示的年份,如 2011 |
M | 月份。一般用 MM 表示月份,如果使用 MMM,则会 根据语言环境显示不同语言的月份 | 使用 MM 表示的月份,如 05; 使用 MMM 表示月份,在 Locale.CHINA 语言环境下,如“十月”;在 Locale.US 语言环境下,如 Oct |
d | 月份中的天数。一般用 dd 表示天数 | 使用 dd 表示的天数,如 10 |
D | 年份中的天数。表示当天是当年的第几天, 用 D 表示 | 使用 D 表示的年份中的天数,如 295 |
E | 星期几。用 E 表示,会根据语言环境的不同, 显示不 同语言的星期几 | 使用 E 表示星期几,在 Locale.CHINA 语 言环境下,如“星期四”;在 Locale.US 语 言环境下,如 Thu |
H | 一天中的小时数(0~23)。一般用 HH 表示小时数 | 使用 HH 表示的小时数,如 18 |
h | 一天中的小时数(1~12)。一般使用 hh 表示小时数 | 使用 hh 表示的小时数,如 10 (注意 10 有 可能是 10 点,也可能是 22 点) |
m | 分钟数。一般使用 mm 表示分钟数 | 使用 mm 表示的分钟数,如 29 |
s | 秒数。一般使用 ss 表示秒数 | 使用 ss 表示的秒数,如 38 |
S | 毫秒数。一般使用 SSS 表示毫秒数 | 使用 SSS 表示的毫秒数,如 156 |
五、使用案例举例
1.题目
* 某公司软件开发工程师孙工,作息规律为上三天班,休息一天,经常不确定休息日 * 是否周末,为此,请你开发一个程序,当孙工输入年及月,以日历方式显示对应月 * 份的休息日,用中括号进行标记.同时,统计出本月有几天休息,轮到周末休息有 * 几天.(注:首次休息日是 2019 年 2 月 2 日)
2.示例
3.代码
package com.Linhai.Test4;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;/*** 某公司软件开发工程师孙工,作息规律为上三天班,休息一天,经常不确定休息日* 是否周末,为此,请你开发一个程序,当孙工输入年及月,以日历方式显示对应月* 份的休息日,用中括号进行标记.同时,统计出本月有几天休息,轮到周末休息有* 几天.(注:首次休息日是 2019 年 2 月 2 日)*/
public class Test_010301_002_01 {public static void main(String[] args) throws ParseException {View view = new View();view.input();Math.random();}
}class View {Scanner scanner = new Scanner(System.in);private int year;private int month;public void input() throws ParseException {Calendar calendar = Calendar.getInstance();System.out.print("请输入年:");year = scanner.nextInt();System.out.print("请输入月:");month = scanner.nextInt() - 1;//当前月份距离第一个月的,减一表示对着呐System.out.println("星期日" + "\t星期一" + "\t星期二" + "\t星期三" + "\t星期四" + "\t星期五" + "\t星期六");calendar.set(year, month, 1);month++;int NUM = calendar.get(Calendar.DAY_OF_WEEK) - 1;int COUNT = 0;for (int i = 1; i <= NUM; i++) {System.out.print("\t\t");COUNT++;}int x = 0;int y = 0;for (int i = 1; i <= calendar.getActualMaximum(Calendar.DAY_OF_MONTH); i++) {boolean pd = true;if (isToday(i)) {System.out.print("[");x++;if(isWeekend(year,month-1,i)){y++;}}System.out.print(i);if (isToday(i)) {System.out.print("]");if (i >= 10) {System.out.print("\t");pd = false;}}if (pd) {System.out.print("\t\t");}COUNT++;if (COUNT == 7) {System.out.println();COUNT = 0;}}System.out.print("\n");System.out.println("本周休息的天数有:" + x);System.out.println("周末休息的天数有:" + y);}public boolean isToday(int x) throws ParseException {SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");String oldTime = "2019-02-02";Date oldDate = simpleDateFormat.parse(oldTime);String nowTime;if (month < 10) {if (x >= 10) {nowTime = String.valueOf(this.year) + "-0" + month + "-" + x;} else {nowTime = String.valueOf(this.year) + "-0" + month + "-0" + x;}} else {if (x >= 10) {nowTime = String.valueOf(this.year) + "-" + month + "-" + x;} else {nowTime = String.valueOf(this.year) + "-" + month + "-0" + x;}}Date nowDate = simpleDateFormat.parse(nowTime);long s = (nowDate.getTime() - oldDate.getTime()) / (1000 * 60 * 60 * 24);boolean b;long a = (s - 1) % 4;if (a == 0) {return true;} else {return false;}}public boolean isWeekend(int year, int month, int day) {Calendar calendar = Calendar.getInstance();calendar.set(year, month, day);if (calendar.get(Calendar.DAY_OF_WEEK) == 1 || calendar.get(Calendar.DAY_OF_WEEK) == 7) {return true;} else {return false;}}
}
六、全文思维导图
编写不易,如有帮助,可点赞收藏;如有问题可联系博主,qq:2280006919
@Hanpig编写