




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第章时间、日期和数字,6.1 Date类 6.2 Calendar Calendar类 6.3 Math类 6.4 BigInteger 类,.1 Date类,Date类在java.util包中。使用Date类的无参数构造方法创建的对象可以获取本地当前时间。Date对象表示时间的默认顺序是:星期、月、日、小时、分、秒、年。例如: Sat Apr 28 21:59:38 CST 2001 。,可以使用DataFormat的子类SimpleDateFormat来实现时期的格式化。SimpleDateFormat有一个常用构造方法: public SimpleDateFormat(String pa
2、ttern)。 该构造方法可以用参数pattern指定的格式创建一个对象 .,pattern中应当含有一些特殊意义字符,这些特殊的字符被称做元字符,例如: y或yy 表示用2位数字输出年份;yyyy表示用4为数字输出年份。 M 或MM 表示用2位数字或文本输出月份,如果想用汉字输出月份,pattern中应连续包含至少3个M,如:MMM。 d 或dd 表示用2为数字输出日。 H或HH 表示用两位数字输出小时。 m或mm 表示用两位数字输出分。 s或ss 表示用两位数字输出秒。 E 表示用字符串输出星期。,计算机时间的“公元”设置在1970年1月1日0时(格林威治时间),据此可以使用Date带参数
3、的构造方法:Date(long time) 例: Date date1=new Date(1000); Date date2=new Date(-1000); 此时,date1的时间就是1970年01月01日08时00分01秒,date2的时间就是1970年01月01日07时59分59秒。 System类的静态方法public long currentTimeMillis()也可获得系统的当前时间。 这是从1970年01月01日00时00分00秒到目前时刻所走过的毫秒数。,例: import java.util.*; import java.text.SimpleDateFormat; pub
4、lic class TestDate 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); SimpleDateFormat matter2= new SimpleDateFormat(北京时间:yyyy年MM月dd日HH时mm分ss秒)
5、; 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.2 Calendar类,Calendar类在java.util包中。使用Calendar类的st
6、atic方法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取负数时表示公元前。,calendar对象调用方法: pub
7、lic int get(int field) 可以获取有关年份、月份、小时、星期等信息,参数field的有效值由Calendar的静态常量指定,例如: calendar.get(Calendar.MONTH); 返回一个整数,如果该整数是0表示当前日历是在一月,该整数是1表示当前日历是在二月等。 日历对象调用 public long getTimeInMillis() 可以将时间表示为毫秒。,例: import java.util.*; import java.text.SimpleDateFormat; class TestCalendar public static void main(S
8、tring args) Calendar cal=Calendar.getInstance(); cal.setTime(new Date(); String year=String.valueOf(cal.get(Calendar.YEAR), month=String.valueOf(cal.get(Calendar.MONTH)+1), day=String.valueOf(cal.get(Calendar.DAY_OF_MONTH), week=String.valueOf(cal.get(Calendar.DAY_OF_WEEK)-1); int hour=cal.get(Calen
9、dar.HOUR_OF_DAY), minute=cal.get(Calendar.MINUTE), second=cal.get(Calendar.SECOND); System.out.println(现在的时间是:); System.out.println(+year+年+month+月+day+日+星期+week); System.out.println(+hour+时+minute+分+second+秒); cal.set(1985,5,29); /将日历翻到1985年6月29日 long time1985=cal.getTimeInMillis(); cal.set(2009,9,
10、29); long time2009=cal.getTimeInMillis(); long day_num=(time2009-time1985)/(1000*60*60*24); System.out.println(2006年10月29日和1962年6月29日相隔+day_num+天); ,屏幕上输出的 结果是: ?,再例: import java.util.*; class CalendarPage public static void main(String args) System.out.println( 日 一 二 三 四 五 六); Calendar cal=Calendar
11、.getInstance(); cal.set(2009,9,1); /将日历放到09年10月1日 int week=cal.get(Calendar.DAY_OF_WEEK)-1; String a=new Stringweek+31; /存放号码的一维数组 for(int i=0;iweek;i+) ai=*; for(int i=week,n=1;iweek+31;i+) if(n=9) ai=String.valueOf(n)+ ; else ai=String.valueOf(n); n+; for(int i=0;ia.length;i+) if(i%7=0) System.out
12、.println(); System.out.print( +ai); ,输出上述日历页 如何编程实现 ?,6.3 Math类,在编写程序时,可能需要计算一个数的平方根、绝对值、获取一个随机数等等。java.lang包中的类包含许多用来进行科学计算的类方法,这些方法可以直接通过类名调用。另外,Math类还有两个静态常量,E和PI,它们的值分别是: 2.7182828284590452354 和 3.14159265358979323846。,Math类常用方法,public static double abs(double a) 返回a的绝对值。 public static double ma
13、x(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 doubl
14、e sin(double a) 返回正弦值。 public static double asin(double a) 返回反正弦值。,对数字结果格式化,怎样将3.1415926输出显示为:003.1416,这需要用到java.text包中的NumberFormat类。 实例化NumberFormat对象调用类方法: public static final NumberFormat getInstance() 格式化数字调用方法: public final String format(double numer) NumberFormat类有如下常用方法: public void setMaxim
15、umFractionDigits(int newValue) public void setMinimumFractionDigits(int newValue) public void setMaximumIntegerDigits(int newValue) public void setMinimumIntegerDigits(int newValue),6.4 BigInteger类,程序有时需要处理大整数,java.math包中的BigInteger类提供任意精度的整数运算。可以使用构造方法: public BigInteger(String val) 构造一个十进制的BigInte
16、ger对象。 注意:当字符串val中含有非数字字符时,则发生NumberFormatException异常,BigInteger类的常用方法,public BigInteger add(BigInteger val) 返回当前大整数对象与参数指定的大整数对象的和。 public BigInteger subtract(BigInteger val) 返回当前大整数对象与参数指定的大整数对象的差。 public BigInteger multiply(BigInteger val) 返回当前大整数对象与参数指定的大整数对象的积。 public BigInteger divide(BigInteg
17、er val) 返回当前大整数对象与参数指定的大整数对象的商。 public BigInteger remainder(BigInteger val) 返回当前大整数对象与参数指定的大整数对象的余。,BigInteger类的常用方法(续),public int compareTo(BigInteger val) 返回当前大整数对象与参数指定的大整数对象的比较结果:1、-1或0。 public BigInteger abs(BigInteger val) 返回当前大整数对象的绝对值。 public BigInteger pow(int exponent) 返回当前大整数对象的exponent次幂。 public String toString() 返回当前大整数对象十进制的字符串表示。 public String toString(int p) 返回当前大整数对象p进制的字符串表示。 例:计算1+2!+3!+.前30项之和。,例: import java.math.*; public class TestB
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 通信行业智能化光传输网络覆盖与升级方案
- 通讯设备通讯设备技术创新与市场拓展策略研究
- 多式联运下城市配送智能化改造方案
- 三农村旅游产业规划方案
- 餐饮业食品安全追溯系统解决方案
- 三农产品深加工与综合利用技术手册
- 化工工艺流程优化与设计试题及答案
- 吉安市城投公司及下属子公司2024年公开招聘线下及实操笔试参考题库附带答案详解
- 赣州2025年江西赣南医科大学高层次人才招聘50人笔试历年参考题库附带答案详解
- 贵州2025年中共贵州省委办公厅所属事业单位招聘15人笔试历年参考题库附带答案详解
- 2024年江苏食品药品职业技术学院单招职业技能测试题库及答案解析
- 活动招商合同
- 标准化法及相关知识课件
- 新视野大学英语(第四版)读写教程1(思政智慧版)课件 Unit 6 Winning is not everything Section B
- 意识障碍诊疗规范2023版
- 仪表检修规程
- 2023年10月自考03706思想道德修养与法律基础试题及答案含评分标准
- 工厂组织架构图
- 全国IP地址段中国IP地址段各省IP段IP段最全
- 读书分享读书交流会《人生海海》
- 中医养生技术ppt
评论
0/150
提交评论