黑马程序员-API

------- android培训java培训、期待与您交流! ----------

System类

属性和行为都是静态的

long currentTimeMillis() 返回当前时间毫秒值

exit() 退出虚拟机

Properties getProperties(); 获取当前系统的属性信息


Properties prop = System.getProperties(); 获取系统的属性信息,并将这些信息存储到Properties集合中

添加属性信息

System.setProperty("mylove","yangym");


获取指定的属性信息

String name = System.getProperty("os.name");


实例: 程序是否能在系统中运行

Set<String> hs = new HashSet<String>();

hs.add("Window XP");

hs.add("Windows 7");

if(hs.contains(name))

{

System.out.println("在该系统下可以运行");

}

else

{

System.out.println("不能运行");

}


Runtime类: 没有构造,不可创建对象,说明此为单例设计模式

class RuntimeDemo

{

public static void main(String[] args) throws Exception //因为sleep会抛出异常对象,所以没处理的话就进行抛出

{

Runtime r = Runtime.getRuntime(); //创建runtime对象

Process p = r.exec("winmine.exe"); //打开扫雷

Thread.sleep(4000); //延迟4秒

p.destroy(); //杀掉进程

}

}


Math类:用于数学运算的工具类,方法和属性也是静态,不可以被继承

static double ceil(double a) 返回大于指定数值的最小整数

static double floor(double a) 返回小于指定数值的最大整数

static long round(duoble a) 四舍五入成整数

static double pow(double a,double b) a的b次幂

static double random() 返回0~1的伪随机数



public static void main(String[] args)

{

Random r = new Random();

for(int x=0;x<10;x++)

{

int d = r.nextInt(10) + 1 ;  //nextint 返回0到9之间的随机数,其中n必须是正数

System.out.println(d);

}

}


Date类 日期类 所做的一切全是跟日期有关的操作,比如时间转换,从字符串中获取日期

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

1.日期对象转成毫秒值 Date类中的getTime方法

2.如何将获取到的毫秒值转成具体的日期

Date类中的setTime方法,也可以通过构造函数


日期对象转成毫秒值

Date d = new Date();

long time1 = d.getTime();

long time2 = System.currentTimeMillis();毫秒值


毫秒值转换成具体的日期

long time = 13227099215424;

Date d = new Date();

d.setTime(time);


将日期字符串转换成日期对象: 使用DateFormat方法中的Date parse(String source);

public static void method() throws Exception

{

String str_time = "2011/10/24";

DateFormat df = new SimpleDateFormat("yyyy/MM/dd"); SimpleDateFormat可以指定用户自定义的格式

Date d = df.parse(str_time);

}


如果不需要特定格式化,则可以直接使用封装好的风格对象。getDateInstance()  getDateTimeInstance()


将日期对象转换成字符串的方式 DateFormat类中的format方法

创建日期格式对象

DateFormat df = new SimpleDateFormat()  默认封装一个日期格式  14-8-12 下午 12:06

如果要自定义,则使用构造将规范字符串传入

df = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");

String str_time = df.format(d);



Calendar: 日历类

public static void method()

{

Calendar c = Calendar.getInstance();

System.out.println(c.get(Calendar.YEAR) + "年" + (c.get(Calendar.MONTH)+1)+"月" + getNum(c.get(Calendar.DAY_OF_MONTH))+

"日"+"星期"+getWeek(c.get(Calendar.DAY_OF_WEEK)) );

}

public static String getNum(int num)

{

return num>9?num+""  :  "0"+num;

}

public static String getWeek(int index)

{

   String[] weeks = {"","日","一","二","三","四","五","六"};

   return weeks[index];

}


Date和Calendar的应用:

编写程序,该程序启动后用户可以按"yyyy-MM-dd"的格式输入一个日期

程序计算这一天是星期几,计算出是一年中的第几天


分析:要用户可以按某格式去输入,就说明有一个键盘输入的输入流。

由于输入的格式有可能不对,那么就需要定义格式,如果不符合格式就报错。使用Date类的DateFormat

计算是星期几,第几天,就用Calendar类


public class DateDemo

{

public static void main(String[] args)

{

getCalendar();

}


public static void getCalendar() throws Exception

{

//1.创建一个输入流存储键盘输入的数据

InputStream is = System.in;

//2.将此数据存储到StringBuilder中,以便于将其转换成字符串

StringBuilder sb= new StringBuilder();

String s = null;

while(true)

{

int ch = is.read();

if(ch=='\r');

continue;

if(ch=='\n')

{

s = sb.toString();

break;

}

else

sb.append((char)ch);

}

//3.创建一个SimpleDateFormat对象存储正确的日期格式,若月份大于当前年份的总月数,则会自动增加年数

天数也是一样

SimpleDateFormat  sdf = new SimpleDateFormat("yyyy-MM-dd");

//4.创建一个date对象获取自定义格式后通过字符串转换出来的日期

Date date = sdf.parse(s);

String str = sdf.format(date);

System.out.println(str);

//5.创建GregorianCalendar对象获取该date参数

//目的:使用其中的get方法可以得到日期常量

Calendar c = new GregorianCalendar();

c.setTime(date);

System.out.println(str + "这一天是这一年的第" + c.get(Calendar.DAY_OF_YEAR) + "天" ;)

        String[] weeks = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};

System.out.println(str + "这一天是" + weeks[c.get(Calendar.DAY_OF_WEEK)]);

}

}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值