JAVA基础08—MathAndDate

前言

Math是常用API之一。在需要科学计算时,Math能提供一些常用的计算方法。
Date日期,也是常用API之一。在开发中,与数据库关联时,日期在记录时间有重要作用。

本文基于个人学习过程中的笔记,记录的常用Math、Date方法,希望帮助读者快速入门与回顾。

1.常用的Math方法

1.1 随机数

这个在基础的练习中经常出现。

Math.random()方法

        // 1~10随机数,注意强转
		int a = (int) (Math.random()*10);

1.2 四舍五入

Math.round()方法:

     // PI四舍五入的近似值
		double PI = Math.PI;
		System.out.println(Math.round(PI));

1.3 开方

Math.sqrt()方法:

        // 15、16的开方
		System.out.println(Math.sqrt(15));
		System.out.println(Math.sqrt(16));

1.4 次方

Math.pow()方法:

        // 次方
        //括号里逗号左侧是
		double fifteen = Math.pow(3.872983346207417, 2);
		System.out.println(fifteen);

2.Date 日期

2.1 基本概念

JAVA中的Date通常用于时间、日期的表示与操作。时间原点为1970年1月1日8:00,原因是纪念UNIX的发布,感兴趣的小伙伴可自行查阅相关典故。

在学习日期的一些基本方法之前,我们曾经用过System.currentTimeMillis()来表示当前毫秒值做过小案例,此处稍微举个例子复习一下:

    public static void main(String[] args) {
		// TODO Auto-generated method stub
		long now = System.currentTimeMillis();
		int a = 0;
		// 来进行一千万次for循环,看看运行时间
		for(int i = 0 ; i < 10000000 ; i++) {
			 a += 1;
		}
		
		long afterFor = System.currentTimeMillis();
		System.out.println("经历的毫秒数为");
		System.out.println(afterFor-now);

	}

但是毫秒的时间并不能直接方便地显示当前是几年几月几号,这时候我们就要用到Date

2.2 创建方式

new Date 的时候,可以根据需求添加参数(从原点算起的毫秒偏移),具体例子如下:

import java.util.Date;

/**
* @Author Sharry
* @Time 2022年5月25日 下午1:24:04
* @Version 1.0
* Description Date的创建演示
*/

public class CreateDate {

	public static void main(String[] args) {
		//无参
		Date now = new Date();

		System.out.println("当前时间"+now);
		
		//含参,从原点算起偏移
		Date history = new Date(10000000);
		
		System.out.println("偏移后的时间"+history);
	}

}

练习:使用毫秒值偏移创建2022年1月1日的日期

public static void main(String[] args) {
		// TODO Auto-generated method stub
		//先计算1970-2022润年多出来的天数
		long moreDay = (2022-1970)/4;
		
		//偏移年数
		long years = 2022-1970;
		
		//20220101毫秒偏移
		long start = singleYear(singleDay())*years
				+moreDay*singleDay();
	
		Date st = new Date(start);
		System.out.println(st);
	}

	/**单日毫秒
	 * @return daily ms 
	*/
	public static long singleDay() {
		long second = 1000;
		long min = second*60;
		long hour = min*60;
		long day = hour*24;
		
		return day;
	}
	
	/**单年毫秒
	* @return yearly ms 
	*/
	public static long singleYear(long singleDay) {
		return singleDay*365;
	}

2.3 常用方法

2.3.1 getTime()获取当前毫秒值

这个方法的作用效果是和System.currentTimeMillis()一样的。

    Date d = new Date();
		long now1 = d.getTime();
		long now2 = System.currentTimeMillis();
		System.out.println(now1);
		System.out.println(now2);
		
2.3.2 格式化输出日期

虽然Date的输出结果已经包含年月日时间,但可读性依然有待提高,比如:

    Sun May 08 01:08:53 CST 2022

这个输出结果对英文一般的同志来说,可能要花几秒时间思考:周日 五月 8日 …
通过格式化转字符串输出,可以将年月日直观地表现出来:

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		Date d = new Date();
		
		String str = sdf.format(d);
		System.out.println(str);

SimpleDateFormat 参数说明:

参数代表
y
M
d
H小时
m分钟
s
S毫秒

举个例子,再练习一遍

     SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS" );
	        Date d= new Date();
	        String str = sdf.format(d);
	        System.out.println(str);
2.3.3 字符串转日期

上面提到的SimpleDateFormat类可以将日期转字符串输出,那么字符串也可以转为Date输出:

    public static void main(String[] args) throws ParseException {
		// TODO Auto-generated method stub
		 SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS" );
	     String str = "2022-05-25 14:36:21 758";
	     Date d = sdf.parse(str);
	     System.out.println(d);
	}

3 总结

本文记录了一些个人学习Math计算方法、Date日期相关笔记。但要注意本文中的Date是java.util包的Date,不是sql包,小伙伴们导包的时候要注意。

下一篇见!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值