Java学习知识点要求(10)2 j" w- i, _6 p* g
15、Math、Date类的用法,常用的方法见附录。8 |3 ] o( ^. B$ k- e
(1)数学函数类(Math)是一个最终类,类头定义格式如下:public final class Math extends Object - ^' E# n& {4 P8 Y2 L
Math类定义的两个双精度常量" p1 t9 Q! B9 p/ x( W# D2 ^
public static final double E--常量e public static final double PI--常量pi5 ^$ `& n) K5 ~2 q) M- [
使用方法:Math.E, Math.PI
7 w) ^( z2 L% U5 Z( v三角函数 public static double sin(double a) public static double cos(double a)
* @; j5 C* r, P9 _8 wpublic static double tan(double a) public static double asin(double a)
& C. j G" @% d$ H' R0 R* Ipublic static double acos(double a) public static double atan(double a)
7 Q+ R$ v' k; b' [) |& Q指数函数 public static double exp(double a) public static double log(double a) 9 [% H) ]' x. Z+ |, ~9 S* f
public static double pow (double y,double x)* Q6 a& Y- Q' ?+ t
public static double sqrt(double a)
/ C7 x& ?+ N0 e1 K9 T7 [# ?2 f例如:double d1=Math.pow(3,4); 5 ?! B+ z- y G4 ]
舍入函数round 形式1:public static int round(float a);9 l8 R0 m2 A1 ~2 U* h
形式2:public static long round(double a);8 g! s/ L: M" r
floor()方法总是向下舍入。其形式为:public static double floor(double a);
7 }1 J9 Q9 C/ y& H) C该方法返回值为double类型。例如,Math.floor(4.99),返回值为4.0。
6 ^0 {6 S1 a y/ l( Q' u! E" Lceil()方法总是向上舍入。public static int ceil(double a)
! k4 ^8 q" U/ ~$ ^- j/ n返回值类型也是double。例如,Math. ceil(4.09)返回值为5.0。 3 T# n( e7 j& P6 z
产生从0~9之间的随机数,可用如下形式:int mun=(int)(10.0*Math.random());
1 z- O6 u- o* _( i0 E7 Y; R5 b产生从1~10之间的随机数,可用如下形式:int mun=(int)(10.0*Math.random())+1;
$ m: E# P" W& A* ~4 f7 B# Lpublic static double toRadians(double angle )$ y; N- T3 E, w. Q- t/ B
public static double toDegrees (double angle)
5 D0 O1 H$ {( B9 |3 Z! i(2)Date(日期)类用来表示指定的日期和时间。. O0 {- A, r: i; _
①构造方法:/ T. f# F( c8 q0 u
A:public Date():用当前的日期和时间初始化对象。% y3 }6 S! b2 f$ H
B:public Date(long millisec):接收一个参数,该参数等于从1970年1月1日午夜起至今的毫秒数的大小。 G+ Q* f9 T& M% Z; c* z' f6 h
C:public Date(int year,int month,int date);& P% j; F8 z( }; H/ z- P8 g
D:public Date(int year,int month,int date,int hours,int minutes);
5 m8 z/ e0 a7 I1 O9 Y. ]. }E:public Date(int year,int month,int date,int hours,int minutes,int seconds);( U" T8 Y8 A" R/ E/ `. B" g I
②常用方法- m; {; w' W( L$ p% s
A:比较日期( X; k' U3 w1 T1 }
public Boolean after(Date when):对象日期在传送给方法的日期之后,返回true。6 H8 ^+ B8 }1 F- @% T
public Boolean before(Date when):对象日期在传送给方法的日期之前,返回true。 _8 f! ?' ^4 E/ e
例如:定义了两个日期date1和date2。: a. P" m) L& H
Date date1=new Date(76,6,4); Date date2=new Date(92,0,12);
2 ?6 S D: N- \4 h; r8 ddate1.before(date2) date1.after(date2)
8 t W, I' r% X# K, |$ ^public int compareTo(Date anotherDate)比较两个日期的顺序- B/ ^: p/ ?# L7 z' u5 d
B:转换日期为字符串
3 {* D3 _# t+ X, T4 Z可使用toString()方法将日期转换为一个字符串。它将日期转换为一个使用本地时区表示的字符串。
- K6 |4 I: T7 Q; Xdow mon dd hh:mm:ss zzz yyyy
2 N; u- {) ~0 h& u7 j8 G0 ^C:取日期3 k/ c' M+ r- ~5 q+ ~4 k( R% ^' c
long getTime():获取自1970.1.1零时至当前系统时刻的毫秒数1 T6 [% Z! q1 m; `, d/ F6 f
int getDate():获取系统当前日期" Y( `/ [9 I1 A. @; O; C
getYear():从1900年开始的年数
% B1 ?5 A, J( h: d) C% o: O5 z+ ^" CgetMonth():从0开始的4 w& T/ Z. F7 x4 U
getDay():周日为0
% t7 u; t W8 D9 T0 rgetHours()* h7 r2 b: D. `1 h1 E e' B
getMinutes()! ^4 i2 w7 y: B4 o8 z
getSeconds()
8 ?* H- U' j) X7 B+ XD:类Calendar(表示日期和时间)提供了一组方法,这些方法允许将以毫秒为单位的时间转换为一组有用的分量。 8 R8 P; @- T3 T' w( @
常用方法:6 F* B6 C$ z4 V: v
getInstance( ): 对默认的地区和时区,返回一个Calendar对象。得到表示当前时间的实例。
/ h5 A; H* ~4 r/ r9 Oget(int field):返回调用对象的分量值。获取相应信息,该分量由field指定,可以请求的分量的实例:Calendar.YEAR,Calendar.MONTH,Calendar.MINUTE等.如get(Calendar.YEAR)
! B+ e8 `% n( O& X8 N# Wset(int year,int month,int date……):set用来设置调用对象的各种日期和时间分量
. t1 O* L ~) l: U! ~GregorianCalendar 是 Calendar 的一个具体子类。
7 m% m% F) d$ ` z1 h+ w+ V有不同的构造方法,用来创建实例。如:
. ^, |( }1 [" lGregorianCalender()8 R" @. w+ l' v" e3 h3 B/ d
GregorianCalender(year,month,date,…)! u v# j4 B+ s* m
例:GregorianCalendar c = new GregorianCalendar();
a6 _# W$ [7 K' h! Lint c.get(Calendar.YEAR)
+ q: h/ N& g0 q7 H7 tint c.get(Calendar.MONTH)
! `8 }9 M6 i& [) {5 h- w; \7 Jint c.get(Calendar.DATE)8 U% n# t. c: _# t; L5 q
int c.get(Calendar.HOUR)0 m f6 l% f9 J% r2 O
int c.get(Calendar.MINUTE)
0 n4 R: V3 h5 X% p4 A' w# yint c.get(Calendar.SECOND)
; h8 \5 ^/ x& ?* J6 Z @c.set(Calendar.YEAR,2000)
7 { C& d6 L* oc.set(Calendar.MONTH,10)
# ^! F$ q s5 t S5 mc.set(Calendar.DATE,7)
! F4 k9 b- B3 P- {* rc.set(2000,10,7)
) ?& P* w3 o$ D0 |. |; b; H. ic.set(2000,10,7,17,48,20) |