黑马程序员_System,Date,Calendar,Math类

本文深入讲解了Java中的System、Math、Date和Calendar等核心类的功能与使用方法,包括获取系统属性、数学运算、日期时间操作等内容。

一、System类

1System类:
不可以被实例化。没有构造函数。
该类中的方法都是静态的。
常见方法:exit().currentTimeMillis(); gc(); getProperties()

getProperties方法:是用来获取系统属性集的。

练习:

package myreview1;

import java.util.Properties;
import java.util.Set;


public class day21test5 {

	public static void main(String[] args) throws ParseException {
	//	练习一:System类中获取本地系统信息的方法。
	//	System.out.println(System.getProperties());
		Properties pro=System.getProperties();
		System.out.println(pro);
		Set<String> name=pro.stringPropertyNames();
		for(String s:name){
			String value=pro.getProperty(s);
			System.out.println(nam+value);
	
		
		
	}

}
}


Runtime:代表应用程序运行时对象。该对象不需要创建,直接通过getRuntime获取即可,因为该Runtime类 是可以将应用程序和运行环境想结合的类。 
该类没有构造函数。可是该类中有特有的非静态方法。 说明它不让其他程序创建该类对象,它给我们提供一个方法获取它的对象。 这个方法就是getRuntime,这个方法是静态的。 返回值类型是Runtime。

注意:该类就是用单例设计模式完成的。



二、Math

Math中的方法都是静态的。

常用方法:

ceil():求大于参数的最小整数。

floor():求小于参数的最小整数。

round():四舍五入。

abs():求绝对值。

pow(a,b):求a的b次幂

创建随机对象:Random r = new Random();


练习:

package myreview1;
import java.util.Random;

public class MathDemo {

	
	public static void main(String[] args) {
		
		//大于参数的最小整数。
		double d0  = Math.ceil(10.34);   
		System.out.println(d1);
		//小于参数的最大整数。
		double d1 = Math.floor(10.34);
		System.out.println(d2);
		
		//四舍五入。
		double d2 = Math.round(10.54);
		System.out.println(d3);
		
		double d3 = Math.pow(10,3);
		System.out.println(d4);
		
		for(int x=0; x<10; x++){
//			double d = Math.ceil(Math.random()*10);
//			double d = Math.floor(Math.random()*10+1);
			int d = (int)(Math.random()*10+1);
			System.out.println(d);
		}
		
		
		
		//使用随机数对象。 Random
		Random r = new Random();
		for(int x=0; x<10; x++){
			int num = r.nextInt(10)+1;
			System.out.println("num="+num);
			
		}
	}
}




三、Date

(1)、日期对象和毫秒值之间的转换:
日期对象之间要进行基本运算,需要转成具体的毫秒数值才可以。 
如果知道一个毫秒值,想要得到年月日,这时就需要将该毫秒值封装成Date对象。因为有了对象以后就可以通过方法来获取。

(2)、将日期对象转成毫秒值:使用的是Date对象中的getTime(); 

(3)、将毫秒值转成日期对象。 
1、通过Date 构造函数完成。new Date();(如果超出范围则加上一个L)
2、通过Date类的setTime方法设置一个指定的毫秒值。 

(4)、将日期对象转成指定格式的日期字符串。使用到了DateFormat对象 中的 format方法。 

1,获取DateFormat对象,可以通过该类的静态方法getDateInstance(),该方法返回的是日期默认的格式化对象。

2,调用format方法转换成字符串。

(5)、日期字符串转成日期对象:

1,获得一个日期字符串。

2,定义一个日期格式化对象。要解析一个具体格式的日期字符串,必须要让该日期格式对象具备解析该格式的能力。(会抛出转化异常)。
3,为了获取其中的日期或者时间字段方便,解析使用的是DateFormat类中的parse方法。

练习:

package myreview1;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;



public class day21test5 {

	public static void main(String[] args) throws ParseException {
		Date d=new Date();
		System.out.println(d);
		String str="2014/5/13";
		DateFormat df=DateFormat.getDateInstance();
		df = new SimpleDateFormat("yyyy/MM/dd");
			d=df.parse(str);

		System.out.println(d);
	}
}

package myreview1;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class day21test6 {

	
	public static void main(String[] args) throws Exception {

		/*
		 * 
		 * "2012/5/12"和"2012/6/2"相差多少天?
		 *  
		 * 
		 */
		
		
		String date1 = "2012/5/12";
		String date2 = "2012/6/2";
		
		//1,将日期格式的字符串转成日期对象。
		DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
		
		//2,对日期字符串进行解析。
		Date d1 = dateFormat.parse(date1);
		Date d2 = dateFormat.parse(date2);
		
		//3,将日期对象转成毫秒值。
		long time1 = d1.getTime();
		long time2 = d2.getTime();
		
		//4,相减。
		long time = Math.abs(time1 - time2);
		System.out.println(time/1000/60/60/24);
	}

}



四、Calendar

Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEARMONTHDAY_OF_MONTHHOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。

Calendar 提供了一个类方法 getInstance返回Calendar对象。

常用方法:get();返回给定日历字段的值。

set();对这个日历对象进行指定日期的设定。

add():日历在指定的日期上偏移。

练习:


package myreview1;

import java.util.Calendar;

public class day21test5 {
	public static void main(String[] args) {
		int year=2014;
		int day=getdays(year);
		System.out.println("二月有"+day+"天");
	}
//	 练习获取任意一年的二月份有多少天。

	public static int getdays(int year) {

		Calendar c=Calendar.getInstance();
		c.set(year, 2, 1);
		c.add(Calendar.DAY_OF_MONTH, -1);
		int days=c.get(Calendar.DAY_OF_MONTH);
		return days;
	}
	
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值