System类、Runtime类、Math类、Date类、Calendar类

System:类中的方法和属性都是静态的

常见方法:

long  currentTimeMillis();获取当前时间的毫秒值

package cn.itcast.p1.otherapi;

import java.util.Arrays;
import java.util.List;
import java.util.Properties;
import java.util.Set;

public class SystemDemo {

	
	private static final String LINE_SEPARATOR = System.getProperty("line.separator");
	/**
	 * @param args
	 */
	public static void main(String[] args) {

		
		
		
		
		/*
		 * System:类中的方法和属性都是静态的。
		 * 
		 * 
		 * 常见方法:
		 * long currentTimeMillis();获取当前时间的毫秒值。 
		 * 
		 */
		
//		long l1 = 1335664696656l;//System.currentTimeMillis();
//		System.out.println(l1/1000/60/60/24);//1335664696656
//		code..
//		long l2 = System.currentTimeMillis();
//		System.out.println(l2-l1);

		
		System.out.println("hello-"+LINE_SEPARATOR+" world");
//		demo_1();
		//给系统设置一些属性信息。这些信息是全局,其他程序都可以使用。 
//		System.setProperty("myclasspath", "c:\myclass");
		
	}
	
	public static void demo_1(){
		//获取系统的属性信息,并存储到了Properties集合中。 
		/*
		 * properties集合中存储都是String类型的键和值。
		 * 最好使用它自己的存储和取出的方法来完成元素的操作。
		 */
		Properties prop = System.getProperties();
		
		Set<String> nameSet = prop.stringPropertyNames();
		
		for(String name : nameSet){
			String value = prop.getProperty(name);
			
			System.out.println(name+"::"+value);
		}
		
	}
	
}



=====================================================

获取系统的属性信息,并存储到了properties集合中

properties集合中存储都是String类型的键和值

最好使用它自己的存储和取出的方法来完成元素的操作

=========================================================

Runtime:没有构造方法摘要,说明该类不可以创建对象

又发现还有非静态的方法,说明该类应该提供静态的返回该类对象的方法

而且只有一个,说明Runtime类使用了单例设计模式

package cn.itcast.p1.otherapi;

import java.io.IOException;

public class RuntimeDemo {

	/**
	 * @param args
	 * @throws IOException 
	 * @throws InterruptedException 
	 */
	public static void main(String[] args) throws IOException, InterruptedException {

		/*
		 * Runtime:没有构造方法摘要,说明该类不可以创建对象。
		 * 又发现还有非静态的方法。说明该类应该提供静态的返回该类对象的方法。
		 * 而且只有一个,说明Runtime类使用了单例设计模式。
		 * 
		 */
		
		Runtime r = Runtime.getRuntime();
		
//		execute: 执行。 xxx.exe 
		
		Process p = r.exec("notepad.exe");
		Thread.sleep(5000);
		p.destroy();
	}

}

=========================================================

Math:提供了操作数学运算的方法,都是静态的

常用的方法:

ceil():返回大于参数的最小整数

floor():返回小于参数的最大整数

round():返回四舍五入的整数

pow(a,b):a的b次方

package cn.itcast.p1.otherapi;

import java.util.Random;

public class MathDemo {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		/*
		 * Math:提供了操作数学运算的方法。都是静态的。
		 * 
		 * 常用的方法:
		 * ceil():返回大于参数的最小整数。
		 * floor():返回小于参数的最大整数。
		 * round():返回四舍五入的整数。
		 * pow(a,b):a的b次方。
		 * 
		 */
		double d1 = Math.ceil(12.56);
		double d2 = Math.floor(12.56);
		double d3 = Math.round(12.46);
		
//		sop("d1="+d1);
//		sop("d2="+d2);
//		sop("d3="+d3);
		
//		double d = Math.pow(10, 2);
//		sop("d="+d);
		
		Random r = new Random();
		for (int i = 0; i < 10; i++) {
			
//			double d = Math.ceil(Math.random()*10);
//			double d = (int)(Math.random()*6+1);
//			double d = (int)(r.nextDouble()*6+1);
			int d = r.nextInt(6)+1;
			System.out.println(d);
		}
	}

	public static void sop(String string) {
		System.out.println(string);
	}

}


=======================================================

 日期对象和毫秒值之间的转换

毫秒值--->日期对象

1.通过Date对象的构造方法new Date(timeMillis)

2.还可以通过setTime设置

因为可以通过Date对象的方法对该日期中的各个字段(年月日)进行操作


日期对象--->毫秒值

2.getTime方法

因为可以通过具体的数值进行运算


对日期对象进行格式化

将日期对象---->日期格式的字符串

使用的是DateFormat类中的format方法

package cn.itcast.p1.otherapi;

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

public class DateDemo {

	/**
	 * @param args
	 * @throws ParseException 
	 */
	public static void main(String[] args) throws ParseException {

		methodDemo_3();

		
	}
	

	/**
	 * 将日期格式的字符串-->日期对象。
	 * 	使用的是DateFormat类中的parse()方法。 
	 * 
	 * @throws ParseException 
	 */
	public  static void methodDemo_3() throws ParseException {
		
		String str_date = "2012年4月19日";
		str_date = "2011---8---17";
		
				
		DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.LONG);
		
		dateFormat = new SimpleDateFormat("yyyy---MM---dd");
		
		
		Date date = dateFormat.parse(str_date);
		
		System.out.println(date);
		
		
	}


	/**
	 * 对日期对象进行格式化。
	 * 将日期对象-->日期格式的字符串。
	 * 	使用的是DateFormat类中的format方法。
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 */
	public static void methodDemo_2() {
		
		Date date = new Date();
		
		//获取日期格式对象。具体着默认的风格。 FULL LONG等可以指定风格。
		DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.LONG);
		dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);
//		System.out.println(dateFormat);
		
		//如果风格是自定义的如何解决呢?
		dateFormat = new SimpleDateFormat("yyyy--MM--dd");
		
		String str_date = dateFormat.format(date);
		
		System.out.println(str_date);
	}
	
	
	
	/**
	 * 日期对象和毫秒值之间的转换。
	 * 
	 * 毫秒值-->日期对象 : 
	 * 	1,通过Date对象的构造方法  new Date(timeMillis);
	 *  2,还可以通过setTime设置。 
	 *  因为可以通过Date对象的方法对该日期中的各个字段(年月日等)进行操作。
	 *  
	 * 
	 * 日期对象-->毫秒值:
	 * 	2,getTime方法。
	 * 因为可以通过具体的数值进行运算。 
	 * 
	 * 
	 */
	public static void methodDemo_1() {
		long time = System.currentTimeMillis();//
//		System.out.println(time);//1335671230671
		
		Date date = new Date();//将当前日期和时间封装成Date对象。
		System.out.println(date);//Sun Apr 29 11:48:02 CST 2012
		
		Date date2 = new Date(1335664696656l);//将指定毫秒值封装成Date对象。
		System.out.println(date2);
	}
	
	

}

Date类练习:

package cn.itcast.p1.otherapi.test;

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


/* 练习:
 * "2012-3-17"到"2012-4-6"
 * 中间有多少天?
 * 思路:
 * 两个日期相减就哦了。
 * 咋减呢?
 * 必须要有两个可以进行减法运算的数。
 * 能减可以是毫秒值。如何获取毫秒值?通过date对象。
 * 如何获取date对象呢?可以将字符串转成date对象。
 * 
 * 1,将日期格式的字符串转成Date对象。
 * 2,将Date对象转成毫秒值。
 * 3,相减,在变成天数 
 * 
 * 
 */

public class DateTest {

	/**
	 * @param args
	 * @throws ParseException 
	 */
	public static void main(String[] args) throws ParseException {

		String str_date1 = "2012-3-17";
		String str_date2 = "2012-4-18";
		test(str_date1,str_date2);
	}

	public static void test(String str_date1,String str_date2) throws ParseException {
		
		//1,将日期字符串转成日期对象。
		//定义日期格式对象。
		DateFormat dateFormat = DateFormat.getDateInstance();
		dateFormat = new SimpleDateFormat("yyyy-MM-dd");
		
		Date date1 = dateFormat.parse(str_date1);
		Date date2 = dateFormat.parse(str_date2);
		
		long time1 = date1.getTime();
		long time2 = date2.getTime();
		
		long time = Math.abs(time1-time2);
		
		
		int day = getDay(time);
		System.out.println(day);
		
	}

	private static int getDay(long time) {
		
		int day = (int)(time/1000/60/60/24);
		
		return day;
	}
	
		

}

package cn.itcast.p1.otherapi;

import java.util.Calendar;

public class CalendarDemo {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		Calendar c = Calendar.getInstance();
		
		int year = 2012;
		showDays(year);
	}

	/**
	 * @param c
	 */
	public static void showDays(int year) {
		
		Calendar c = Calendar.getInstance();
		c.set(year, 2, 1);
		
		c.add(Calendar.DAY_OF_MONTH, -1);
		
		showDate(c);
	}

	/**
	 * @param c
	 */
	public static void showDate(Calendar c) {
		int year = c.get(Calendar.YEAR);
		int month = c.get(Calendar.MONTH)+1;
		int day = c.get(Calendar.DAY_OF_MONTH);
		int week = c.get(Calendar.DAY_OF_WEEK);
		
		
		System.out.println(year+"年"+month+"月"+day+"日"+getWeek(week));
	}

	public static String getWeek(int i) {
		
		String[] weeks = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
		
		return weeks[i];
	}
	
	

}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值