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 }