黑马程序员_java_关于时间和数学方法总结

------- android培训java培训、期待与您交流! ----------


处理有关日期和时间的信息,可以使用 java.util 中的 Date 类,在编写 Java 源程序时,情况很明显,你必须通过 “import java.util.*” 引入 java.util 软件包;而在编写 JSP 源程序时,由于 Date 不是 JSP 的默认对象,你仍然必须通过 “<%@ page import="java.util.*"” 引入这个软件包。此外,由于在 java.sql 中存在一个同名的 Date 类,为了将这两者正确地区分,凡是用到 java.util 中的 Date 类时,你最好将其写成 java.util.Date

 

Date表示特定的瞬间,精确到毫秒

 

年份 y 由整数 y - 1900 表示。

月份由从 0  11 的整数表示;是一月、是二月等等;因此 11 是十二月。

日期(一月中的某天)按通常方式由整数 1  31 表示。

小时由从 0  23 的整数表示。因此,从午夜到 1 a.m. 的时间是 0 点,从中午到 1 p.m. 的时间是 12 点。

分钟按通常方式由 0  59 的整数表示。

秒由 0  61 的整数表示;值 60  61 只对闰秒发生,尽管那样,也只用在实际正确跟踪闰秒的 Java 实现中。于按当前引入闰秒的方式,两个闰秒在同一分钟内发生是极不可能的,但此规范遵循 ISO C 的日期和时间约定。

 

构造方法:

Date()

Date(long date) 参数date是从标准时间(1970_1_1 00:00:00)以来的指定的毫秒数

 

注意在导包的时候不要导入sql.Date包了

 

 
TimeZone时区:如东八区

 

为了更好显示格式时间?我们使用DateFormat

但是DateFormat不能实例化,我们可以使用它的子类SimpleDateFormat

 

日期和时间模式

日期和时间格式由日期和时间模式 字符串指定。在日期和时间模式字符串中,未加引号的字母 'A'  'Z'  'a'  'z' 被解释为模式字母,用来表示日期或时间字符串元素。文本可以使用单引号 (') 引起来,以免进行解释。"''" 表示单引号。所有其他字符均不解释;只是在格式化时将它们简单复制到输出字符串,或者在解析时与输入字符串进行匹配。

定义了以下模式字母(所有其他字符 'A'  'Z'  'a'  'z' 都被保留):

 


package d18;

 

import java.util.Date;

import java.text.*;

 

public class Test3

{

   public static void main(String[]args)

         {

                   Date d=new Date();

                   System.out.println(d);//打印的格式看不懂,希望能改写格式

                   //将模式封装到SimpleDateFormat对象中

                   SimpleDateFormatsdf=new SimpleDateFormat("yyyyMMdd E hhmmss");

                   Stringtime=sdf.format(d);//格式化

                   System.out.println(time);

                  

         }

}





单独获取时间如某一天,某一月

package d18;

 

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

 

public class Test4

{

         public static voidmain(String[] args)

         {

                   Date d=new Date();

                   System.out.println(d);

                   SimpleDateFormatsdf=new SimpleDateFormat("yyyy");

                   Stringyear=sdf.format(d);

                   System.out.println(":"+year);

                  

                   Calendarc=Calendar.getInstance();

                   intyear2=c.get(Calendar.YEAR);

                   System.out.println("得到年份:"+year2);

                   System.out.println("得到月份"+c.get(Calendar.MONTH)+1);

                   System.out.println("得到天数:"+c.get(Calendar.DAY_OF_MONTH));

                   System.out.println("得到星期:"+c.get(Calendar.DAY_OF_WEEK));

                  

                   //查表法

                   String[] mons={"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十二月","十三月"};

                   intmonIndex=c.get(Calendar.MONTH);

                   System.out.println("中文表示月份:"+mons[monIndex]);

                  

                   //获取星期如:"星期一" "星期二可以采用上面的方法

                  

         }

}






package d18;

 

import java.util.Calendar;

 

public class Test5

{

   public static void main(String[]args)

         {

                   Calendarc=Calendar.getInstance();

                   c.set(3000,5, 24);//设置时间为3000524

                   System.out.println(c.get(Calendar.YEAR)+""

                                         +c.get(Calendar.MONTH)+""

                                                   +c.get(Calendar.DAY_OF_MONTH)+"");

                  

                   c.add(c.YEAR, 4);//将年加4

                   c.add(c.MONTH, 1);//将月+1

                   System.out.println(c.get(Calendar.YEAR)+""

                +c.get(Calendar.MONTH)+""

                       +c.get(Calendar.DAY_OF_MONTH)+"");

                  

         }

}





package d18;

 

import java.util.Calendar;

 

import javax.security.auth.x500.X500Principal;

 

/*

 * 获取任意年的二月有多少天

 *   思路:根据指定年设置一个时间c.set(year,2,1);设置的31

 *       c.add(Calendar.Day_Of_Month,-1);//将天数向前推一天

 *      

 * 获取昨天的这个时刻

 *      c.add(Calendar.Day_Of_Month,-1);

 */

public class Test6

{

   public static void main(String[]args)

         {

                   Calendarc=Calendar.getInstance();

                   c.add(Calendar.DAY_OF_MONTH,-1);

                   System.out.println("昨天的这个时候:"

                                    +c.get(Calendar.DAY_OF_MONTH)+""

                                              +c.get(Calendar.HOUR_OF_DAY)+":"

                                               +c.get(Calendar.MINUTE)+":"

                                               +c.get(Calendar.SECOND));

                  

                   c.set(2015,2,1);//31

                   c.add(Calendar.DAY_OF_MONTH,-1);//向前推进一天

                   System.out.println("2015年的二月"+c.get(Calendar.DAY_OF_MONTH)+"");

         }

}

 




Math  类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。

常见方法:

Math.abs(-12);// 求绝对值                                                   

Math.max(10, 19);// 求两个数中的最大数                                      

Math.min(10, 19);// 求两个数中的最小数                                      

Math.pow(3, 4);// 求次方                                                    

Math.floor(4.32);// 比参数值小的最大整数 ( 返回 double)                      

Math.ceil(4.32);// 比参数值小的最大整数 ( 返回 double)                       

(int)(54 * Math.random());//0-53 之间的随机整数 // 0.0<=x<1->0.0<=54x<54->int

package d18;

 

importjava.util.Random;

 

public class Test7

{

     public static void main(String[] args)

         {

                   double d=Math.ceil(12.34);//返回大于指定数据的最小整数

                   sop(d);//13

                  

                   double d2=Math.floor(12.45);//返回小于指定数据的最大整数

        sop(d2);//12

       

        double d3=Math.round(13.4);//四舍五入

        sop(d3);//13.0

       

        double d4=Math.round(13.5);

        sop(d4);//14.0

       

        double d5=Math.pow(2, 3);

        sop(d5);//8

       

        getRandomNum();

       

        //使用Random类更方便

        Random random=new Random();

        int nm=random.nextInt(10)+1;//1-10

        sop(nm);

         }

    

     static void getRandomNum()

     {

              double d=Math.random();

              sop(d);//0~1的小数

         sop((int)(d*10+1));//1-10

     }

    

     static void sop(Object obj)

     {

              System.out.println(obj);

     }

}

 

 

获取两位小数

package d18;

 

importjava.text.NumberFormat;

 

/*

 * 给定一个小数 保留两位小数

 */

public class Test

{

    public static void main(String[] args)

         {

                   double d=16.467;

                   NumberFormat nf=NumberFormat.getInstance();

                   nf.setMaximumFractionDigits(2);

                   String s=nf.format(d);

                   System.out.println(s);

         }

}


Math 类所有方法:

Math.PI 记录的圆周率
Math.E 
记录e的常量
Math
中还有一些类似的常量,都是一些工程数学常用量。

Math.abs() 
求绝对值
Math.sin() 
正弦函数
Math.asin() 
反正弦函数
Math.cos() 
余弦函数
Math.acos() 
反余弦函数
Math.tan() 
正切函数
Math.atan() 
反正切函数
Math.atan2() 
商的反正切函数
Math.toDegrees() 
弧度转化为角度
Math.toRadians() 
角度转化为弧度
Math.ceil() 
得到不小于某数的最大整数
Math.floor() 
得到不大于某数的最大整数
Math.remainder() 
求余
Math.max() 
求两数中最大
Math.min() 
求两数中最小
Math.sqrt() 
求开方
Math.pow() 
求某数的任意次方,抛出ArithmeticException处理溢出异常
Math.exp() 
e的任意次方
Math.log10() 
10为底的对数
Math.log() 
自然对数
Math.rint() 
求距离某数最近的整数(可能比某数大,也可能比它小)
Math.round() 
同上,返回int型或者long型(上一个函数返回double型)
Math.random() 
返回01之间的一个随机数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值