资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,CH 6,时间日期和数字,6.1,Date,类,6.2,Calendar,类,6.3,Math,类,6.4,BigInteger,类,6.1,Date,类,Date,类在,java.util,包中。,使用,Date,类的无参数构造方法创建的对象可以获取本地当前时间。,Date,对象表示时间的默认顺序是:,星期、月、日、小时、分、秒、年。,例如:,Sat Apr 28 21:59:38 CST 2001,。,可以使用,DataFormat,的子类,SimpleDateFormat,来实现时期的格式化。,SimpleDateFormat,的一个常用构造方法:,public,SimpleDateFormat(String,pattern),该构造方法可以用参数,pattern,指定的格式创建一个对象。,6.1,Date,类,pattern,中含有一些特殊意义字符,这些特殊的字符被称做元字符,例如:,y,或,yy,、,yyyy,表示用,2,位、,4,位数字输出年份。,M,或,MM,表示用,2,位数字或文本输出月份,如果想用汉字输 出月份,,pattern,中应连续包含至少,3,个,M,,如:,MMM,。,d,或,dd,表示用,2,位数字输出日。,H,或,HH,表示用,2,位数字输出小时。,m,或,mm,表示用,2,位数字输出分。,s,或,ss,表示用,2,位数字输出秒。,E,表示用字符串输出星期。,6.1,Date,类,示例,6.1,import,java.util.Date,;,import,java.text.SimpleDateFormat,;,class,ExampleSimpleDateFormat,public static void,main(String,args,),Date,nowTime,=new Date();,System.out.println(nowTime,);,SimpleDateFormat,matter1,=,new,SimpleDateFormat,(,time:yyyy,年,MM,月,dd,日,E,北京时间,);,System.out.println(,matter1.format(nowTime),);,6.1,Date,类,示例,6.1,SimpleDateFormat,matter2=,new,SimpleDateFormat,(,北京时间,:,yyyy,年,MM,月,dd,日,HH,时,mm,分,ss,秒,);,System.out.println(,matter2.format(nowTime),);,Date date1=new Date(1000),date2=new Date(-1000);,System.out.println(matter2.format(date1);,System.out.println(matter2.format(date2);,System.out.println(new,Date(System.currentTimeMillis,();,6.1,Date,类,6.1,Date,类,示例,6.1,运行结果图,6.2,Calendar,类,Calendar,类在,java.util,包中。,使用,Calendar,类的,static,方法,getInstance,(),可以初始化一个日历对象,如:,Calendar,calendar,=,Calendar.getInstance,();,calendar,对象可以调用方法:,set(int,year,int,month,int,date),set(int,year,int,month,int,date,int,hour,int,minute),set(int,year,int,month,int,date,int,hour,int,minute,int,second),将日历翻到任何一个时间,当参数,year,取负数时表示公元前。,6.2,Calendar,类,calendar,对象调用方法:,public,int,get(int,field),可以获取有关年份、月份、小时、星期等信息,参数,field,的有效值由,Calendar,的静态常量指定,例如:,calendar.get(Calendar.MONTH,);,返回一个整数,如果该整数是,0,表示当前日历是一月,,该整数是,1,表示当前日历是二月。,calendar,对象调用,public long,getTimeInMillis,(),可以将时间表示为毫秒。,6.2,Calendar,类,示例,6.2,import,java.util,.*;,class,ExampleCalendarDayNumber,public static void main(String,args,),Calendar,calendar,=,Calendar.getInstance,();,calendar.setTime(new,Date();,String,年,=,String.valueOf(calendar.get(Calendar.YEAR,),月,=String.valueOf(calendar.get(Calendar.MONTH)+1),日,=,String.valueOf(calendar.get(Calendar.DAY_OF_MONTH,),星期,=String.valueOf(calendar.get(Calendar.DAY_OF_WEEK)-1);,int,hour=,calendar.get(Calendar.HOUR_OF_DAY,),minute=,calendar.get(Calendar.MINUTE,),second=,calendar.get(Calendar.SECOND,);,6.2,Calendar,类,示例,6.2,System.out.println,(,现在的时间是:,);,System.out.println,(+,年,+,年,+,月,+,月,+,日,+,日,+,星期,+,星期,);,System.out.println(+hour,+,时,+minute+,分,+second+,秒,);,calendar.set(1973,4,24);,/,将日历翻到,1973,年,5,月,24,日,注意,4,表示,5,月,long time1973=,calendar.getTimeInMillis,();,calendar.set(2012,9,9);,long time2012=,calendar.getTimeInMillis,();,long,相隔天数,=(time2012-time1973)/(1000*60*,60,*24);,System.out.println(2012,年,10,月,9,日和,1973,年,5,月,24,日相隔,+,相隔天数,+,天。,);,6.2,Calendar,类,示例,6.2,运行结果图,6.2,Calendar,类,示例,6.3,import,java.util,.*;,class,ExampleCalendarPage,public static void main(String,args,),int,MonthDAY,=0,31,28,31,30,31,30,31,31,30,31,30,31;,int,year=2012,month=10,day=1;,int,OneNumber,=9;,System.out.println,();,System.out.println,(,日 一 二 三 四 五 六,);,Calendar,myCalendar,=,Calendar.getInstance,();,myCalendar.set(year,month-1,day);,/,将日历翻到指定的年月日。,int,WeekDay,=myCalendar.get(,Calendar.DAY_OF_WEEK,)-1;,6.2,Calendar,类,示例,6.3,String a=new,StringWeekDay+MonthDAYmonth,;,for(,int,i=0;i,WeekDay,;i+),ai,=*;,for(,int,i=,WeekDay,n,=1;i,WeekDay+MonthDAYmonth;i,+,),if (n=,OneNumber,),ai,=+,String.valueOf(n,);,else,ai,=,String.valueOf(n,);,n+;,6.2,Calendar,类,示例,6.3,for(,int,i=0;i,a.length,;i+),if(i%7=0),System.out.println,();,System.out.print,(+,ai,);,System.out.println,();,6.2,Calendar,类,示例,6.3,运行结果图,6.3,Math,类,在编写程序时,可能需要计算一个数的平方根、绝对值、获取一个随机数等等。,java.lang,包中的类包含许多用来进行科学计算的类方法,这些方法可以直接通过类名,Math,调用。,Math,类还有两个静态常量:,E,值是:,2.7182828284590452354,PI,值是:,3.14159265358979323846,Math,类常用方法,public static long,abs(double,a),返回,a,的绝对值。,public static double,max(double,a,double,b),返回,a,、,b,的最大值。,public static double,min(double,a,double,b),返回,a,、,b,的最小值。,public static double random(),产生一个,0,到,1,之间的随机数,(,不包括,0,和,1),。,public static double,pow(double,a,double,b),返回,a,的,b,次幂。,public static double,sqrt(double,a),返回,a,的平方根。,public static double,log(double,a),返回,a,的对数。,public static double,sin(double,a),返回正弦值。,public static double,asin(double,a),返回反正弦值。,示例,6.4 P,124,6.4,BigInteger,类,程序有时需要处理大整数。,java.math,包中的,BigInteger,类提供任意精度的整数运算。,BigInteger,类的构造方法:,public,BigInteger(String,val,),构造一个十进制的,BigInteger,对象。,BigInteger,类的常用方法,public,BigInteger,add(BigInteger,val,),返回当前大整数对象与参数指定的大整数对象的和。,public,BigInteger,subtract(BigInteger,val,),返回当前大整数对象与参数指定的大整数对象的差。,public,BigInteger,multiply(BigInteger,val,),返回当前大整数对象与参数指定的大整数对象的积。,public,BigInteger,divide(BigInteger,val,),返回当前大整数对象与参数指定的大整数对象的商。,示例,6.5,P,126,
展开阅读全文