《Ch6_时间日期和数字sth.ppt》由会员分享,可在线阅读,更多相关《Ch6_时间日期和数字sth.ppt(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、CH 6CH 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 pat
2、tern)该构造方法可以用参数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.Si
3、mpleDateFormat;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 SimpleDa
4、teFormat(北京时间: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
5、 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)将日历翻到任何一个时间,当参
6、数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.2import java.util.*;class ExampleCalen
7、darDayNumber 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.
8、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
9、,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.3import java.util.*;c
10、lass 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);/将日历翻到指定的年月
11、日。int WeekDay=myCalendar.get(Calendar.DAY_OF_WEEK)-1;6.2 Calendar类类示例 6.3 String a=new StringWeekDay+MonthDAYmonth;for(int i=0;iWeekDay;i+)ai=*;for(int i=WeekDay,n=1;iWeekDay+MonthDAYmonth;i+)if (n=OneNumber)ai=+String.valueOf(n);else ai=String.valueOf(n);n+;6.2 Calendar类类示例 6.3 for(int i=0;ia.lengt
12、h;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.14159265358979323846Math类常用方法public static long abs
13、(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
14、 a)返回a的对数。public static double sin(double a)返回正弦值。public static double asin(double a)返回反正弦值。示例 6.4 P1246.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 P126