標籤:定時 排序 lap 格式化 尋找 play OLE hide ann
java.util包被稱為java工具包,裡麵包含大部分的工具類
Random 隨機數類
new Random()
rd.nextInt()
rd.nextInt(100)
Scanner 掃描器類
Scanner sc = new Scanner(system.in);
String str = sc.next();
String str1 = sc.nextLine();
int t = sc.nextInt();
float t = sc.nextFloat();
Date 日期類
Date d = new Date(); 目前時間
Date d = new Date(long); 指定的時間
d.getTime();獲得目前時間的毫秒數
日期格式化類
SimpleDataFormat 格式化日期時間的類
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E");
String s = sdf.format(d);
Calendar 日曆類
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
int hour = c.get(Calendar.HOUR_OF_DAY);
int min = c.get(Calendar.MINUTE);
int sec = c.get(Calendar.SECOND);
int w = c.get(Calendar.DAY_OF_WEEK);
ps:Calendar類是一個抽象類別,需要通過getInstance()方法來實現
Calendar與Date類之間的轉換分別是getTime()和setTime()
Calendar對象擷取month將會比實際的月份少一個月,是從下標為0開始的
Calendar對象擷取day_of_week是擷取到當前星期,返回的是重這周日到當前禮拜的天數。
TimerTask 定時任務類
Timer 定時器
定義一個類繼承TimerTask,重寫run方法
建立一個Timer對象
建立一個xxTask對象
啟動任務
在指定的時間指定任務
t.schedule(task, date);
延遲一定時間執行
t.schedule(task, 500);
延遲一定時間執行,每隔一定時間重複執行一次
t.schedule(task, 5000, 1000);
在指定的時間開始執行,每隔一定時間重複執行一次
t.schedule(task, d, 1000);
Arrays 數組類
binarySearch(數組,值) 用二分法尋找值在數組中出現的下標位置,前提條件,數組必須是有序的
sort(數組) 對數組用快排法進行排序
toString(數組) 將數群組轉換成字串形式
copyOf(數組,長度)拷貝數組,得到一個新數組
附:控制台日曆查詢程式
1 package com.work.calendar; 2 3 import java.util.Calendar; 4 import java.util.Scanner; 5 6 7 public class CalendarDemo { 8 int year,month,day=0; 9 //定義一個存放日期天數的數組10 int[] days = {31,28,31,30,31,30,31,31,30,31,30,31};11 Calendar cad ;12 /**13 * 無參構造方法中擷取當前日期14 */15 public CalendarDemo(){16 cad= Calendar.getInstance();17 this.year = cad.get(Calendar.YEAR);18 this.month=cad.get(Calendar.MONTH)+1;19 }20 /**21 * 給日曆對象傳入一個具體的日期22 * @param year23 * @param month24 * 2018年8月26日25 */26 public void setCalendarDemo(int year,int month){27 this.year = year;28 this.month = month;29 cad = Calendar.getInstance();30 cad.set(Calendar.YEAR, year);31 cad.set(Calendar.MONTH,month-1);32 }33 /**34 * 將擷取到的日曆列印35 * 36 * 2018年8月26日37 */38 public void link() {39 if(year/4==0&&year/100!=0||year%400 ==0) {40 days[1]=29;41 }else {42 days[1]=28;43 }44 System.out.println(year+"年"+month+"月");45 System.out.println("日\t 一\t 二\t 三\t 四\t 五\t 六");46 cad.set(Calendar.DAY_OF_MONTH, 1);47 int first = cad.get(Calendar.DAY_OF_WEEK);48 for(int i = 0;i<first-1;i++) {49 System.out.print("\t");50 }51 for(int i=0;i<days[month-1];i++) {52 System.out.print(i+1+"\t");53 if(first==7) {54 first=0;55 System.out.println();56 }57 first++;58 }59 }60 public static void main(String[] args) {61 int month,year;62 boolean flag = true;63 Scanner sc = new Scanner(System.in);64 System.out.println("請輸入年份和月份");65 year = sc.nextInt();66 month = sc.nextInt();67 CalendarDemo c = new CalendarDemo();68 c.setCalendarDemo(year, month);69 c.link();70 while(flag) {71 System.out.println();72 System.out.println("輸入a,d可以查看上個月,下個月的日曆");73 System.out.println("輸入r可以退出程式");74 char operation = sc.next().charAt(0);75 if(operation==‘a‘) {76 if(month==1) {77 year = year - 1;78 month = 12;79 }else {80 month=month-1;81 }82 }else if(operation ==‘d‘){83 if(month==12) {84 year = year+1;85 month = 1;86 }else {87 month=month+1;88 }89 }else if(operation ==‘r‘) {90 flag = false;91 }92 c.setCalendarDemo(year, month);93 c.link();94 System.out.println();95 System.out.println("程式已退出");96 }97 sc.close();98 }99 }CalendarDemo
java學習--java.util包中常用類