Fork me on GitHub

java学习--java.util包中常用类

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 year
23      * @param month
24      * 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

 

posted @ 2018-08-26 12:27  Banana_Fish  阅读(5273)  评论(0编辑  收藏  举报