1 package p1;
2
3 import java.util.Properties;
4 import java.util.Set;
5
6 public class SystemDemo {
7
8 private static final String LINE_SEPARATOR = System.getProperty("line.separator"); //設置換行
9
10 public static void main(String[] args) {
11 /*
12 * System:類中的方法和屬性都是靜態的。
13 * 常見方法:
14 * long currentTimeMills();獲取當前時間的毫秒值。(返回當前時間與協調世界時間1970年1月1日午夜之間的時間差)
15 */
16 // demo1();
17 demo2();
18 // demo3();
19
20 }
21
22 public static void demo3() {
23 System.setProperty("age", "28");
24 System.setProperty("name", "張三");
25
26
27 System.out.println(System.getProperty("age"));
28 System.out.println(System.getProperty("name"));
29
30 System.out.println("hello"+LINE_SEPARATOR+"woorld");
31 }
32 /*
33 * demo3運行結果:
34 * 28
35 張三
36 hello
37 woorld
38
39 */
40
41 public static void demo2() {
42 /*
43 * Properties getProperties() 獲取系統的屬性信息,並存儲到Properties集合中
44 *
45 * Properties集合中存儲都是String類型的鍵和值 //所以定義Properties類型的變量時不必帶泛型
46 * 最好使用它自己的存儲和取出的方法來完成元素的操作
47 */
48 Properties prop = System.getProperties();
49 // System.out.println(prop);
50
51 Set<String> nameSet = prop.stringPropertyNames();
52
53 for (String name : nameSet)
54 {
55 String value = prop.getProperty(name);
56
57 System.out.println(name+"::"+value);
58 }
59 }
60
61 public static void demo1() {
62 long l1 = System.currentTimeMillis();
63 System.out.println(l1);//返回1473476846438 毫秒數
64 System.out.println(l1/1000/60/60/24); //返回 17054 天數
65
66 // code...
67 long l2 = System.currentTimeMillis();
68 System.out.println(l2-l1); //返回的是code...代碼執行所用時間
69 }
70
71 }

1 package p1;
2
3 import java.io.IOException;
4
5 public class RuntimeDemo {
6
7 public static void main(String[] args) throws IOException, InterruptedException {
8 /*
9 * 每一個Java程序都有一個Runtime類案例,使應用程序能夠與其運行的環境相連,可以通過getRuntime方法獲取當前運行時。
10 * 應用程序不能創建自己的Runtime類案例。
11 */
12
13 /*
14 * Runtime:沒有構造方法摘要,說明該類不可以創建對象
15 * 又發現還有非靜態的方法,說明該類應該提供靜態的返回該類對象的方法
16 * 而且只有一個,說明Runtime類使用了單列設計模式。
17 */
18
19 Runtime r = Runtime.getRuntime();
20
21 // Process p = r.exec("notepad.exe");//打開notep
22 Process p = r.exec("notepad.exe D:\\1.txt");//打開notepad,在用notepad打開TXT
23 //r.exec("軟件路徑 文件路徑");
24 Thread.sleep(5000);
25 p.destroy();//殺掉進程 5s後notepad關閉
26
27
28 }
29
30 }
1 package p1;
2
3 import java.util.Random;
4
5 public class MathDemo {
6
7 public static void main(String[] args) {
8 /*
9 * Math:提供了操作數學運算的方法。都是靜態的。
10 *
11 * 常用方法:
12 * ceil():返回大於參數的最小整數
13 * floor():返回小於參數的最大整數
14 * round():返回四捨五入的整數
15 * pow(a,b):a的b次方
16 * random():返回帶正號的 double 值,該值大於等於 0.0 且小於 1.0
17 */
18
19 // demo();
20 RandomDemo();
21
22
23 }
24
25 public static void RandomDemo() {
26 Random r = new Random();
27
28 for (int i=0; i<10; i++)
29 {
30 double d = r.nextDouble();//與Math.random()方法類似
31 System.out.println(d);
32 /*
33 * 0.013546684829438105
34 0.08058717380462299
35 0.25156348709107823
36 0.8149201340850071
37 0.37986882841498293
38 0.23718135066250312
39 0.6348939629694422
40 0.9508777684076484
41 0.8231478486704749
42 0.4605800387044423
43 */
44 }
45
46 for (int i=0; i<10; i++)
47 {
48 int d1 = r.nextInt(10); //隨機返回0~10(不包含)間任意一個int值。
49 System.out.println(d1);
50
51 }
52 }
53
54 public static void demo() {
55 double d1 = Math.ceil(12.53);
56 double d2 = Math.floor(12.53);
57 double d3 = Math.round(12.13);
58 double d4 = Math.pow(10, 3);
59
60 System.out.println(d1); //13.0
61 System.out.println(d2); //12.0
62 System.out.println(d3);//12.0
63 System.out.println(d4);//1000.0
64
65 for (int i=0; i<10; i++)
66 {
67 double d = Math.random();
68 System.out.println(d);
69 /*
70 * 0.3027275615429248
71 0.5238495879790577
72 0.987839818675654
73 0.6749156933585441
74 0.8474524363649824
75 0.412124228077851
76 0.009324944666969759
77 0.9136918707539762
78 0.41197917556520036
79 0.3277617281962496
80 */
81 }
82 }
83
84 }
1 package p1;
2
3 import java.text.DateFormat;
4 import java.text.ParseException;
5 import java.text.SimpleDateFormat;
6 import java.util.Date;
7
8 public class DateDemo {
9
10 public static void main(String[] args) throws ParseException {
11 // method_demo1();
12 // method_demo2();
13 method_demo3();
14
15 }
16
17 public static void method_demo3() throws ParseException {
18
19 /*
20 *將日期格式的字符串-->日起對象
21 * 使用的是DateFormat類中的parse()方法。
22 */
23
24 String str = "2016年9月10日 星期六";
25 String str1 = "2016--09--10 02:22:08";
26
27 DateFormat dateformat = DateFormat.getDateInstance(DateFormat.FULL);//格式與日期格式要對應
28 DateFormat dateformat1 = new SimpleDateFormat("yyyy--MM--dd hh:mm:ss");
29
30 Date date = dateformat.parse(str);
31 System.out.println(date);//Sat Sep 10 00:00:00 CST 2016
32
33 Date date1 = dateformat1.parse(str1);
34 System.out.println(date1);//Sat Sep 10 02:22:08 CST 2016
35 }
36
37 public static void method_demo2() {
38 /*
39 * 對日期對象進行格式化
40 * 將日期對象-->日期格式的字符串
41 * 使用DateFormat類中的format方法。
42 */
43
44 Date date = new Date();
45
46 //獲取日期格式對象,有FULL,LONG,SHORT,MEDIUM(默認)格式。不標明就是默認格式
47 DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.FULL);
48 // System.out.println(dateFormat); //java.text.SimpleDateFormat@ef7951d7
49 String str = dateFormat.format(date);
50 System.out.println(str);//2016年9月10日 星期六
51
52 DateFormat dateFormat1 = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.LONG);
53 String str1 = dateFormat1.format(date);
54 System.out.println(str1); //2016年9月10日 星期六 下午02時14分18秒
55
56 //如果風格想要自定義呢?
57 DateFormat dateFormat2 = new SimpleDateFormat("yyyy--MM--dd hh:mm:ss");
58 String str2 = dateFormat2.format(date);
59 System.out.println(str2); //2016--09--10 02:22:08
60
61 }
62
63 public static void method_demo1() {
64
65 /*
66 * 日期對象和毫秒值之間的轉換
67 *
68 * 毫秒值-->日期對象
69 * 1.通過Date對象的構造方法 new Date(timeMills);
70 * 2.還可以通過Settime設置
71 *
72 * 日期對象-->毫秒值
73 * getTime方法
74 */
75
76 long time = System.currentTimeMillis();
77 System.out.println(time); //1473485640659
78
79 Date date = new Date(); //將當前日期和時間封裝成date對象。
80 System.out.println(date); //Sat Sep 10 13:39:21 CST 2016
81
82 Date date1 = new Date(1473485640659l); //將指定毫秒值封裝成date對象。
83 System.out.println(date1); //Sat Sep 10 13:34:00 CST 2016
84
85 Date date2 = new Date();
86 date2.setTime(1473485640659l);
87 long l = date2.getTime();
88 System.out.println(l); //1473485640659
89 }
90
91 }
1 package p1;
2
3 import java.text.DateFormat;
4 import java.text.ParseException;
5 import java.util.Date;
6
7 /*
8 * “2012-3-17”到“2012-4-6”間有多少天
9 *
10 * 思路:
11 * 日期格式字符串-->日期對象-->獲取毫秒值-->相減
12 */
13 public class DateTest {
14
15 public static void main(String[] args) throws ParseException {
16
17 String str_date1 = "2012-3-17";
18 String str_date2 = "2012-4-6";
19
20 test(str_date1,str_date2);
21
22 }
23
24 public static void test(String str_date1, String str_date2) throws ParseException {
25 DateFormat dateformat = DateFormat.getDateInstance();//對應格式
26
27 Date date1 = dateformat.parse(str_date1);
28 Date date2 = dateformat.parse(str_date2);
29
30 long time1 = date1.getTime();
31 long time2 = date2.getTime();
32
33 long time = Math.abs(time1-time2);
34
35 int day = getDay(time);
36 System.out.println(day);
37
38 }
39
40 public static int getDay(long time) {
41 int day = (int)(time/1000/60/60/24);
42 return day;
43 }
44
45 }
1 package cn.itcast.p1.otherapi;
2
3 import java.util.Calendar;
4
5 public class CalendarDemo {
6
7 public static void main(String[] args) {
8 Calendar c = Calendar.getInstance();
9 System.out.println(c);
10 /*電腦當前時間的日歷
11 *
12 * java.util.GregorianCalendar[time=1473493014690,areFieldsSet=true,
13 areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",
14 offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,
15 minimalDaysInFirstWeek=1,ERA=1,YEAR=2016,MONTH=8,WEEK_OF_YEAR=37,WEEK_OF_MONTH=2,DAY_OF_MONTH=10,
16 DAY_OF_YEAR=254,DAY_OF_WEEK=7,DAY_OF_WEEK_IN_MONTH=2,AM_PM=1,HOUR=3,HOUR_OF_DAY=15,
17 MINUTE=36,SECOND=54,MILLISECOND=690,ZONE_OFFSET=28800000,DST_OFFSET=0]
18
19 */
20
21 showDate(c);
22
23 showDays(2016);//判斷2016的二月有多少天
24
25 }
26
27 public static void showDays(int i) {
28 Calendar c = Calendar.getInstance();
29 c.set(i, 2, 1);
30
31 c.add(Calendar.DAY_OF_MONTH, -1);
32 showDate(c);
33 }
34
35 public static void showDate(Calendar c) {
36
37 int year = c.get(Calendar.YEAR);
38 int month = c.get(Calendar.MONTH)+1;
39 int day = c.get(Calendar.DAY_OF_MONTH);
40 int week = c.get(Calendar.DAY_OF_WEEK);
41 int hour = c.get(Calendar.HOUR_OF_DAY);
42 int min = c.get(Calendar.MINUTE);
43 int second = c.get(Calendar.SECOND);
44
45 System.out.println(year+"年"+month+"月"+day+"日"+getWeek(week)+" "+hour+":"+min+":"+second);
46 }
47
48 public static String getWeek(int week) {
49 String[] weeks = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
50
51 return weeks[week];
52 }
53
54 }
