javaseday20(系统类 时间 runtime math date calendar)
来源:互联网 发布:ios看书软件 编辑:程序博客网 时间:2024/06/05 02:48
类中没有构造方法 说明构造方法被私有了 不能创建对象 而且里面的方法都是静态的
但是又具备 非静态方法 那么说明有一个方法是静态的而且 返回一个对象 这就是单例设计模式
/** System:类中的方法和属性都是静态的
*
* 常见方法
* long currentTimeMills() 获取当前时间的毫秒值
*/
public class SystemDemo01 {
private static final String LINE_SEPARATOR = System.getProperty("line.separator");//常量大写
public static void main(String[] args) {
long l1 = System.currentTimeMillis();
System.out.println(l1);
long l2 = System.currentTimeMillis();
System.out.println(l2-l1);
// demo_1();
//给系统设置一些属性信息 这些信息是全局的 其他程序都可以用
System.setProperty("myclasspath", "c:/myclass");
System.setProperty("mykey", "mayvalue");
System.out.println("hello "+LINE_SEPARATOR+" world");//unix 只认\n换行 所以用系统的
}
//虚拟机启动的时候都会先拿系统上的信息
public static void demo_1(){
//获取系统的属性信息 并存储到 Properties集合中 是Map集合
Properties prop = System.getProperties();//键和值都是String 所以没泛型
/*
* Properties集合存储的都是String类型的值
* 最好使用它自己的存储和取出方法来完成元素的操作
*/
Set<String> nameSet = prop.stringPropertyNames();
for(String a :nameSet){
String value = prop.getProperty(a);
System.out.println(a+".."+value);
}
}
}
/*
* Runtime 没有构造方法摘要 说明该类不可以创建对象
* 又发现还有非静态的方法 说明该类 应该提供静态的返回该类对象的方法
* 而且只有一个 说明Runtime类使用了单例设计模式
*
* 保证了对象唯一性
*/
Runtime r = Runtime.getRuntime();
//execute 执行 xxx.exe exe就是execute的简称
try {
r.exec("notepad.exe");//当前找不到就去系统路径找
} catch (IOException e) {
e.printStackTrace();
}
// r.exec("c:\\abc\\QQ.exe");//绝对 路径 \是转译 所以用两个
// r.exec("baofengyingyin.exe c:\\RuntimeDemo.avi");//用暴风影音解析 播放文件
Process p = r.exec("notepad.exe");
p.destroy();
}
}
/*
* Math:提供了操作数学运算的方法都是静态的
*
* 常用方法
* ceil();
* floor();
* round();
* pow(a,b); a的b次方
*/
// double d1 = Math.ceil(12.43);//返回大于参数的最小整数
// double d2 = Math.floor(12.55);//返回小于参数的最大整数
// double d3 = Math.round(213.1);//返回四舍五入的整数
// sop("d1="+d1);
// sop("d2="+d2);
// sop("d3="+d3);
// double d4 = Math.pow(10, 2);
// sop("d4="+d4);
Random r = new Random();
for (int i = 0; i < 10; i++) {
double d = Math.floor(Math.random()*10);//0~9
double d1 = Math.ceil(Math.random()*10);//1~10
double d2 = (int)(Math.random()*6+1);//骰子
int d3 = r.nextInt(6)+1;//还有其他扩展方法
System.out.println(d);
}
}
private static void sop(String string) {
System.out.println(string);
}
}
/*
* 13月就是下一年的一月
* 时间是连续的 计算机中0是1月
*/
public class DateDemo01 {
public static void main(String[] args) throws ParseException {
// Demo01();
// Demo02();
Demo03();
}//格式化 是指这个事物按照指定的格式进行转换 重新按照格式建立
/**
* 对日期对象进行格式化
* 将日期对象——>日期格式的字符串
* 使用的是DateFormat中的format方法
*/
private static void Demo02() {
Date date = new Date();
//获取日期格式对象 具备默认风格MEDIUM是默认
DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.FULL);
dateFormat = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.LONG);
//如果风格是自定义的
System.out.println(dateFormat);
dateFormat = new SimpleDateFormat("yyyy MM dd");
String str_date = dateFormat.format(date);
System.out.println(str_date);
}
/**
* 将日期格式的字符串 ——>日期对象
* 使用的是DateFormat类中的parse()方法
* @throws ParseException
*/
public static void Demo03() throws ParseException{
String str_date = "2012---4--11";
DateFormat dateFormat = DateFormat.getDateInstance();
dateFormat = new SimpleDateFormat("yyyy---MM--dd");//自己创个格式匹配传入的字符串
Date date = dateFormat.parse(str_date); //通过parse()方法解析
System.out.println(date);
}
/**
* 日期对象和毫秒值之间的转换
*
* 毫秒值——>日期对象
* 1、通过Date对象的构造方法 new Date(timeMillis);
* 2、还可以通过setTime设置
* 因为可以通过Date对象的方法对该日期中的各个字段(年月日等)进行操作 能解析毫秒值
*
* 日期对象——>毫秒值
* 2、getTime方法
* 因为可以通过具体的数值进行 运算 2个对象不能减 毫秒值可以减 可以算相差的时间
*
*
*/
public static void Demo01() {
long time = System.currentTimeMillis();
System.out.println(time);
Date date = new Date();//将当前日期和时间封装成Date对象
System.out.println(date);
Date date2 = new Date(1502778013059l);//将指定毫秒值封装成对象 注意加l表示长整型不然无法默认int
System.out.println(date2);
}
}
/*
* 练习
* "2017-8-15"到"2017-9-16"
* 中间有多少天
* 思路
* 两个日期相减
* 怎么减?
* 必须要有两个可以进行减法运算的数
* 能减的可以是毫秒值 如何获取毫秒值 通过date对象
* 如何获取date 对象 可以将字符串转成date对象
*
* 1、将日期格式的字符串转成date对象
* 2、将Date对象转成毫秒值
* 3、相减 再变成天数
*
*
*/
public static void main(String[] args) throws ParseException {
String str_date1 = "2017-8-15";
String str_date2 = "2017-9-16";
test(str_date1,str_date2);
}
private 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;
}
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
int year =1111;
showDays(year);
// Demo_02();
// Demo_01();
}
public static void Demo_0(int year) {
Calendar c = Calendar.getInstance();
c.set(year,11,4);
//在此基础上偏移
c.add(Calendar.YEAR, 2); //2往右边偏移
c.add(Calendar.MONTH, 2);//时间是连续的 注意到头
showDate(c);
}
public static void showDays(int year) {
Calendar c = Calendar.getInstance();
c.set(year,2,1);
c.add(Calendar.DAY_OF_MONTH, -1);//获取2月的天数
showDate(c);
}
public static void showDate(Calendar c) {
// System.out.println(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));
// System.out.println(c.get(Calendar.YEAR));
}
public static void Demo_01() {
Calendar c = Calendar.getInstance();
// System.out.println(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));
// System.out.println(c.get(Calendar.YEAR));
}
public static String getWeek(int i ){
String[] week = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};//角标1是星期日
return week[i];
}
- javaseday20(系统类 时间 runtime math date calendar)
- System Runtime Date Calendar Math 类
- System,Runtime,Date,Calendar,Math-Random类
- 常用类:System,Runtime,Math,Date,Calendar
- System、Runtime、Date、Calendar、Math
- System、Runtime、Math、Date、Calendar
- System类、Runtime类、Math类、Date类、Calendar类
- 黑马程序员---System,Math,Runtime,Date类/Calendar的使用
- 其他常用类简介(System、Runtime、Date、Calendar、Math、Random)
- 黑马程序员_<<常用类(System.Math,Calendar,Date,Runtime)>>
- 几个特殊类Math&Runtime&System&Random&Date&Calendar&DateFormat
- 黑马程序员---Java基础(System,Runtime,Date,Calendar,Math类)
- 黑马程序员之System、Runtime、Math、Date、Calendar类
- javase_day13_OtherObject(System&Runtime&Date&Calendar&Math)
- 学习心得(runtime,system,Math,Date,Calendar)
- Java的系统类:System、Runtime ;和时间类:Date、Calendar
- 【java中常用工具类的总结】System类,Runtime类,Date类,Calendar类,Math类
- Java基础18:system类;runtime类;Date类;calendar类;math类;字符流
- 表存在则删除(一句sql实现)
- 658. Find K Closest Elements
- 【笔记】自定义函数库
- 淘宝开源Key/Value结构数据存储系统Tair技术剖析
- 位运算简单介绍
- javaseday20(系统类 时间 runtime math date calendar)
- AsyncTask的使用及参数、方法的介绍
- 2.1 存储空间管理 raid + lvm
- 在安装liunx下的android studios出现的错误
- linux服务器 依靠端口 关闭 服务
- linux 操作mysql的命令
- 机器学习入门:线性回归及梯度下降
- leetcode 660. Remove 9
- jquery 删除元素