day14 java基础(正则表达式,System类,Random类,Math类,BigInteger类,BigDecimal类,Date类,Calendar类)
----------------------------总结----------------------------------------
1:正则表达式(理解)
(1)就是符合一定规则的字符串
(2)常见规则
A:字符
x 字符 x。举例:‘a’表示字符a
\ 反斜线字符。
\n 新行(换行)符 (’\u000A’)
\r 回车符 (’\u000D’)
B:字符类[abc] a、b 或 c(简单类) [^abc] 任何字符,除了 a、b 或 c(否定) [a-zA-Z] a到 z 或 A到 Z,两头的字母包括在内(范围) [0-9] 0到9的字符都包括C:预定义字符类. 任何字符。我的就是.字符本身,怎么表示呢? \.\d 数字:[0-9]\w 单词字符:[a-zA-Z_0-9]在正则表达式里面组成单词的东西必须有这些东西组成D:边界匹配器^ 行的开头 $ 行的结尾 \b 单词边界就是不是单词字符的地方。举例:hello world?haha;xixiE:Greedy 数量词 X? X,一次或一次也没有X* X,零次或多次X+ X,一次或多次X{n} X,恰好 n 次 X{n,} X,至少 n 次 X{n,m} X,至少 n 次,但是不超过 m 次
(3)常见功能:(分别用的是谁呢?)A:判断功能String类的public boolean matches(String regex)B:分割功能String类的public String[] split(String regex)C:替换功能String类的public String replaceAll(String regex,String replacement)D:获取功能Pattern和MatcherPattern p = Pattern.compile("a*b");Matcher m = p.matcher("aaaaab");find():查找存不存在group():获取刚才查找过的数据
(4)案例A:判断电话号码和邮箱B:按照不同的规则分割数据C:把论坛中的数字替换为*D:获取字符串中由3个字符组成的单词
2:Math(掌握)
(1)针对数学运算进行操作的类
(2)常见方法(自己补齐)
A:绝对值
B:向上取整
C:向下取整
D:两个数据中的大值
E:a的b次幂
F:随机数
G:四舍五入
H:正平方根
(3)案例:
A:猜数字小游戏
B:获取任意范围的随机数
3:Random(理解)
(1)用于产生随机数的类
(2)构造方法:
A:Random() 默认种子,每次产生的随机数不同
B:Random(long seed) 指定种子,每次种子相同,随机数就相同
(3)成员方法:
A:int nextInt() 返回int范围内的随机数
B:int nextInt(int n) 返回[0,n)范围内的随机数
4:System(掌握)
(1)系统类,提供了一些有用的字段和方法
(2)成员方法(自己补齐)
A:运行垃圾回收器
B:退出jvm
C:获取当前时间的毫秒值
D:数组复制
5:BigInteger(理解)
(1)针对大整数的运算
(2)构造方法
A:BigInteger(String s)
(3)成员方法(自己补齐)
A:加
B:减
C:乘
D:除
E:商和余数
6:BigDecimal(理解)
(1)浮点数据做运算,会丢失精度。所以,针对浮点数据的操作建议采用BigDecimal。(金融相关的项目)
(2)构造方法
A:BigDecimal(String s)
(3)成员方法:
A:加
B:减
C:乘
D:除
E:自己保留小数几位
7:Date/DateFormat(掌握)
(1)Date是日期类,可以精确到毫秒。
A:构造方法
Date()
Date(long time)
B:成员方法
getTime()
setTime(long time)
C:日期和毫秒值的相互转换
案例:你来到这个世界多少天了?
(2)DateFormat针对日期进行格式化和针对字符串进行解析的类,但是是抽象类,所以使用其子类SimpleDateFormat
A:SimpleDateFormat(String pattern) 给定模式
yyyy-MM-dd HH:mm:ss
B:日期和字符串的转换
a:Date – String
format()
b:String -- Dateparse()C:案例:制作了一个针对日期操作的工具类。
8:Calendar(掌握)
(1)日历类,封装了所有的日历字段值,通过统一的方法根据传入不同的日历字段可以获取值。
(2)如何得到一个日历对象呢?
Calendar rightNow = Calendar.getInstance();
本质返回的是子类对象
(3)成员方法
A:根据日历字段得到对应的值
B:根据日历字段和一个正负数确定是添加还是减去对应日历字段的值
C:设置日历对象的年月日
(4)案例:
计算任意一年的2月份有多少天?
package cn.itcast_01;
import java.util.Scanner;
/*
-
校验qq号码:
-
1.要求必须是5-15位数字 -
2.0不能开头 -
*/
public class RegexDemo {
public static void main(String[] args) {
// 键盘录入一个字符串
Scanner sc = new Scanner(System.in);
System.out.println(“请输入你的QQ账号:”);
String s = sc.nextLine();// 调用方法1boolean b = checkQQ(s);if(b){System.out.println("校验成功!");}else{System.out.println("输入错误!");}System.out.println("--------------------");// 调用方法2boolean b2 = checkQQ(s);if(b2){System.out.println("校验成功!");}else{System.out.println("输入错误!");}System.out.println("--------------------");}
// 方法1 自创笨方法
public static boolean checkQQ(String s){
boolean flag = true;
// 验证字符串长度
if(s.length()<5||s.length()>15){
flag = false;
return flag;
}// 必须都是数字,且开头不能是0// 将字符串转化成字符数组char arr [] =s.toCharArray();// 判断开头是否为0if(arr[0]=='0'){flag=false;return flag;}// 判断是否都为数字for(int x =0;x// 方法2 主要是调用java方法
public static boolean checkQQ2(String s ){
// 定义一个返回值变量
boolean flag = true;// 判断字符串长度if(s.length()>=5&&s.length()<=15){if(!s.startsWith("0")){char arr [] = s.toCharArray();for(int x=0;x}
}
package cn.itcast_01;
import java.util.Scanner;
/*
-
正则表达式:符合一定规则的字符串。
-
*/
public class RegexDemo2 {
public static void main(String[] args) {
// 键盘录入一个字符串
Scanner sc = new Scanner(System.in);
System.out.println(“请输入你的QQ账号:”);
String s = sc.nextLine();// 调用方法1boolean b = checkQQ(s);if(b){System.out.println("校验成功!");}else{System.out.println("输入错误!");}}
public static boolean checkQQ(String s){
String Regex ="[1-9][0-9]{4,14}";
// public boolean matches(String regex) 告知此字符串是否匹配给定的正则表达式。
boolean flag = s.matches(Regex);
return flag;
}
}
A:字符
x 字符 x。举例:‘a’表示字符a
\ 反斜线字符。
\n 新行(换行)符 (’\u000A’)
\r 回车符 (’\ua000D’)
B:字符类
[abc] a、b 或 c(简单类)
[^abc] 任何字符,除了 a、b 或 c(否定)
[a-zA-Z] a到 z 或 A到 Z,两头的字母包括在内(范围)
[0-9] 0到9的字符都包括
C:预定义字符类
. 任何字符。我的就是.字符本身,怎么表示呢? .
\d 数字:[0-9]
\w 单词字符:[a-zA-Z_0-9]
在正则表达式里面组成单词的东西必须有这些东西组成
D:边界匹配器
^ 行的开头
$ 行的结尾
\b 单词边界
就是不是单词字符的地方。
举例:hello world?haha;xixi
E:Greedy 数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次
--------------------------知识点1----------------------------------
package cn.itcast_02;
import java.util.Scanner;
/*
-
判断功能
public boolean matches(String regex)需求:
判断手机号码是否满足要求分析:
1.键盘录入手机号
2.定义手机号码的规则
13246578981
18217228963
13123457896
131345398753.调用功能,判断即可 4.输出结果 -
*/
public class RegexDemo {
public static void main(String[] args) {
// 键盘录入手机号码
Scanner sc = new Scanner(System.in);
// 提示信息
System.out.println(“请输入手机号码:”);
String s = sc.nextLine();// 定义规则
String Regex =“1[38]\d{9}”;
System.out.print(s);
System.out.println(" "+s.matches(Regex));}
}
--------------------------知识点2----------------------------------
package cn.itcast_02;
import java.util.Scanner;
/*
-
需求:
校验邮箱分析:
1.键盘录入邮箱
2.定义手机号码的规则
15135678976@qq.com
liuyi@163.com
lingqingxia@126.com
fengqingyang@sina.com.cn
fqy@itcast.cn
3.调用功能,判断即可
4.输出结果 -
*/
public class RegexTest {
public static void main(String[] args) {
// 键盘录入邮箱
Scanner sc = new Scanner(System.in);
// 提示信息
System.out.println(“请输入邮箱:”);
String email = sc.nextLine();// 定义规则String Regex ="[a-zA-Z_0-9]+@[a-zA-Z_0-9]+(\\.[a-zA-Z_0-9]{2,3})+";System.out.print(email);System.out.println(" "+email.matches(Regex));}
}
--------------------------知识点3----------------------------------
package cn.itcast_03;
/* -
分割功能练习
-
*/
public class RegexDemo {
public static void main(String[] args) {
// 定义字符串1
String s1 = “aa,bb,cc”;// 直接分割String [] str1Array = s1.split(",");for(int x=0;x}
}
--------------------------知识点4----------------------------------
package cn.itcast_03;
import java.util.Scanner;
/*
-
分割功能
public String[] split(String regex) -
根据给定正则表达式的匹配拆分此字符串。 -
需求:
-
qq搜索好友: -
性别:女 -
范围:"18-24" -
age>=18&&age<=24 -
*/
public class RegexDemo2 {
public static void main(String[] args) {
// 定义一个字符串
String age = “18-24”;// 定义以规则String Regex = "-";// 调用方法String [] Stringarr = age.split(Regex);// 将字符串转化成int类型数据int startAge = Integer.parseInt(Stringarr[0]);int endAge = Integer.parseInt(Stringarr[1]);// 键盘录入数据Scanner sc = new Scanner(System.in);// 提示输入数据System.out.println("请输入年龄:");// 接收数据int yourAge = sc.nextInt();if(yourAge>=startAge && yourAge<=endAge){System.out.println("你是我想找的");}else{System.out.println("你不是我要找的,你走吧");}}
}
--------------------------知识点5----------------------------------
package cn.itcast_03;
import java.util.Arrays;
/*
-
分割功能:
我有如下一个字符串:”91 27 46 38 50”
请写代码实现最终输出结果是:”27 38 46 50 91” -
*/
public class RegexTest {
public static void main(String[] args) {
// 定义字符串
String s = “91 27 46 38 50”;// 调用方法System.out.println(method(s));}
public static String method(String s){
// 将字符串进行分割
String [] stringArray = s.split(" ");
int arr []=new int [stringArray.length];// 将字符串数组转化成int类型数组for(int x=0;x}
}
--------------------------知识点6----------------------------------
package cn.itcast_04;
/* -
替换功能:
论坛中不能出现数字字符,用*替换 -
public String replaceAll(String regex,String replacement)使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串 -
*/
public class RegexDemo {
public static void main(String[] args) {
// 定义一个字符串
String s = “h7e9l4l4ow6o6r84ldwo33aijava”;// 定义正则表达式String regex = "\\d";String ss = "*";String s2 = s.replaceAll(regex, ss);System.out.println(s2);}
}
--------------------------知识点7----------------------------------
package cn.itcast_05;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/*
- 获取功能
Pattern和Matcher类的使用
*/
public class RegexDemo {
public static void main(String[] args) {
// 模式匹配器的调用模式// 指定为字符串的正则表达式必须首先被编译为此类的实例。Pattern p = Pattern.compile("a*b");// 通过模式对象得到匹配器对象,这个是被需要匹配的字符串Matcher m = p.matcher("aaaaab");// 调用匹配器对象功能boolean b = m.matches();System.out.println(b);// 这个判断有点复杂,我们直接用字符串做String s ="aaaaab";String regex = "a*b";boolean result = s.matches(regex);System.out.println(result);}
}
--------------------------知识点8----------------------------------
package cn.itcast_05;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/*
-
获取功能:
获取由三个字符组成的单词
qw,e,err,da,ssf,a,sdf,fa,adf,fas,fafda,fawer,fafdgh,afaq,wwer,eee,ddf,fawy,ghrs,sgd,qwert -
*/
public class RegexDemo2 {
public static void main(String[] args) {
// 定义字符串
String s =“qw,e,err,da,ssf,a,sdf,fa,adf,fas,fafda,fawer,fafdgh,afaq,wwer,eee,ddf,fawy,ghrs,sgd,qwert”;// 定义正则表达式String regex = "\\b\\w{3}\\b";// 把规则编译成模式对象Pattern p = Pattern.compile(regex);// 通过模式对象得到匹配对象Matcher m = p.matcher(s);// 调用匹配器功能//boolean result = m.matches();//System.out.println(result);
// boolean b = m.find();
// System.out.println(b);
// String ss = m.group();
// System.out.println(ss);
//
// b = m.find();
// //System.out.println(b);
// String ss1 = m.group();
// System.out.println(ss1);
// System.out.println("------------");
// 循环改进// 注意: 错误java.lang.IllegalStateException:// 在调用group之间必须先调用find方法// while(m.find()){String ss2 = m.group();System.out.println(ss2);// }}
}
--------------------------知识点9----------------------------------
package cn.itcast_01;
public class Person {
// 成员变量
private String name;
private int age;// 构造方法
public Person(){}public Person(String name,int age){this.age = age;this.name = name;
}// 获取方法
public String getName() {return name;
}public void setName(String name) {this.name = name;
}public int getAge() {return age;
}public void setAge(int age) {this.age = age;
}@Override
public String toString() {return "Person [name="+ name +",age="+age+"]";
}@Override
protected void finalize() throws Throwable {System.out.println("当前对象被回收了"+this);super.finalize();
}
}
--------------------------知识点10----------------------------------
package cn.itcast_01;
/*
-
System 类包含一些有用的类字段和方法。它不能被实例化。
-
成员方法:
-
public static void gc() :运行垃圾回收器public static void exit(int status)public static long currentTimeMillis()public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length) -
*/
public class SystemDemo {
public static void main(String[] args) {
Person p = new Person(“赵雅芝”,60);
System.out.println§;p=null;System.gc();}
}
--------------------------知识点11----------------------------------
package cn.itcast_02;
/*
-
System 类包含一些有用的类字段和方法。它不能被实例化。
-
成员方法:
-
public static void gc() :运行垃圾回收器public static void exit(int status):终止当前正在运行的 Java 虚拟机。参数用作状态码;根据惯例,非 0 的状态码表示异常终止。 public static long currentTimeMillis():返回以毫秒为单位的当前时间public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length) -
*/
public class SystemDemo {
public static void main(String[] args) {
//System.out.println(“林青霞”);
//System.exit(0);
//System.out.println(“赵雅芝”);System.out.println(System.currentTimeMillis());// 统计程序运行时间long start = System.currentTimeMillis();for(int x=0;x<10000;x++){System.out.println("hello world");}long end = System.currentTimeMillis();System.out.println("程序运行总时间:"+(end-start)+"毫秒");}
}
--------------------------知识点12----------------------------------
package cn.itcast_03;
import java.util.Arrays;
/*
-
System 类包含一些有用的类字段和方法。它不能被实例化。
-
成员方法:
-
public static void gc() :运行垃圾回收器public static void exit(int status):终止当前正在运行的 Java 虚拟机。参数用作状态码;根据惯例,非 0 的状态码表示异常终止。 public static long currentTimeMillis():返回以毫秒为单位的当前时间public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length):从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。 -
*/
public class SystemDemo {
public static void main(String[] args) {
// 定义数组
int [] arr = {11,22,33,44,55,66};
int [] arr2 = {1,2,3,4,5,6};System.arraycopy(arr, 1, arr2, 2, 2);System.out.println(Arrays.toString(arr));System.out.println(Arrays.toString(arr2));}
}
--------------------------知识点13----------------------------------
package cn.itcast_01;
import java.util.Random;
/*
-
Random:产生随机数的类
-
构造方法:
-
Random() :没有给种子,用的是默认种子,当前时间是毫秒级
创建一个新的随机数生成器。Random(long seed) :给出指定的种子
使用单个 long 种子创建一个新的随机数生成器。给定种子后,每次得到的随机数相同。
-
成员方法:
-
public int nextInt():返回的是int范围类的随机数public int nextInt(int n):返回的是[0,n)之间的随机数。 -
*/
public class RandomDemo {
public static void main(String[] args) {
// 创建对象
Random r = new Random(10); // 给定种子for(int x =0;x<10;x++){// public int nextInt():返回的是int范围类的随机数int num = r.nextInt();System.out.println("num:"+num);}System.out.println("-------------------");for(int x =0;x<10;x++){// public int nextInt(int n):返回的是[0,n)之间的随机数。int num1 = r.nextInt(10);System.out.println("num1:"+num1);}System.out.println("-------------------");}
}
--------------------------知识点14----------------------------------
package cn.itcast_01;
/* -
Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。
-
成员变量:
-
E
-
public static final double E
比任何其他值都更接近 e(即自然对数的底数)的 double 值。
PI
public static final double PI
比任何其他值都更接近 pi(即圆的周长与直径之比)的 double 值。
成员方法:
public static int abs(int a):绝对值
public static double ceil(double a):向上取整数
public static double floor(double a):向下取整
public static int max(int a,int b) :最大值
public static double pow(double a,double b):a的b次幂
public static double random():随机数[0.0,1)
public static int round(float a) :四舍五入
public static double sqrt(double a):正平方根
-
*/
public class MathDemo {
public static void main(String[] args) {
//public static final double E
System.out.println(“E:”+Math.E);//public static final double PISystem.out.println("PI:"+Math.PI);// public static int abs(int a):绝对值System.out.println("abs:"+Math.abs(-1));// public static double ceil(double a):向上取整数System.out.println("ceil:"+Math.ceil(-1.9288));//public static double floor(double a):向下取整System.out.println("floor:"+Math.floor(-1.9288));// public static int max(int a,int b) :最大值System.out.println("max:"+Math.max(-1.9288,2));// public static double pow(double a,double b):a的b次幂System.out.println("pow:"+Math.pow(2,3));// public static double random():随机数[0.0,1)System.out.println("random:"+Math.random());// public static int round(float a) :四舍五入System.out.println("round:"+Math.round(1.23));// public static double sqrt(double a):正平方根System.out.println("sqrt:"+Math.sqrt(4));}
}
--------------------------知识点15----------------------------------
package cn.itcast_02;
import java.util.Scanner;
/*
- 获取任意区间的随机数
- 分析:
-
1.键盘录入两个数据start,end; -
2.随机获取之间的一个随机数 -
写一个功能实现 -
注意:Math.random() [0.0,1.0) -
3.输出随机数 - */
public class MathDemo {
public static void main(String[] args) {
// 键盘录入边界区间数据
Scanner sc = new Scanner(System.in);
// 提示输入数据
System.out.println(“请输入区间左边界:”);
int start = sc.nextInt();
System.out.println(“请输入区间右边界:”);
int end = sc.nextInt();
for(int x=0;x<100;x++){
// 调用方法
System.out.println(“随机数:”+method(start,end));
}
}
public static int method(int start ,int end){
int c = end-start+1;
int result =(int)(Math.random()*c+start);
return result;
}
}
--------------------------知识点16----------------------------------
package cn.itcast_01;
import java.math.BigInteger;
/*
*
-
*/
public class BigIntegerDemo {
public static void main(String[] args) {
Integer i1 =new Integer(100);
System.out.println(i1);Integer i2=new Integer(Integer.MAX_VALUE);System.out.println(i2);Integer i3=new Integer("2147483647");System.out.println(i3);// NumberFormatException//Integer i4=new Integer("2147483648");//System.out.println(i4);// 通过大整数来创造对象BigInteger bi = new BigInteger("2147483648");System.out.println("bi:"+bi);}
}
--------------------------知识点17----------------------------------
package cn.itcast_02;
import java.math.BigInteger;
/*
-
public BigInteger add(BigInteger val):加
public BigInteger subtract(BigInteger val):减
public BigInteger multiply(BigInteger val):乘
public BigInteger divide(BigInteger val):除
public BigInteger[] divideAndRemainder(BigInteger val):返回商和余数的数组 -
*/
public class BigIntegerDemo {
public static void main(String[] args) {
// 创建对象
BigInteger bi = new BigInteger(“100”);
BigInteger bi2 = new BigInteger(“50”);
//public BigInteger add(BigInteger val):加
System.out.println(“add:”+bi.add(bi2));//public BigInteger subtract(BigInteger val):减
System.out.println(“subtract:”+bi.subtract(bi2));//public BigInteger multiply(BigInteger val):乘
System.out.println(“multiply:”+bi.multiply(bi2));//public BigInteger divide(BigInteger val):除
System.out.println(“divide:”+bi.divide(bi2));//public BigInteger[] divideAndRemainder(BigInteger val):返回商和余数的数组
BigInteger [] arr = bi.divideAndRemainder(bi2);
System.out.println(“商:”+arr[0]);
System.out.println(“余:”+arr[1]);
}
}
--------------------------知识点18----------------------------------
package cn.itcast_01;
/* -
看程序写结果:结果和我们想的有点不一样,因为float类型的数据存储和整数不一样导致,他们大部分时候,都带有有效数字位。
-
为了能精确的表示、计算浮点数,Java提供了BigDecimal。 -
由于在运算的时候,float类型和double很容易丢失精度
-
BigDecimal类概述不可变的、任意精度的有符号十进制数。 -
/
public class BigDecimalDemo {
public static void main(String[] args) {
System.out.println(0.09 + 0.01);
System.out.println(1.0 - 0.32);
System.out.println(1.015100);
System.out.println(1.301 /100);System.out.println( 1.0- 0.12);}
}
--------------------------知识点19----------------------------------
package cn.itcast_02;
import java.math.BigDecimal;
/*
- 构造方法:
- public BigDecimal(String val)
- 将 BigDecimal 的字符串表示形式转换为 BigDecimal。
- 字符串表示形式由可选符号 ‘+’ (’\u002B’) 或 ‘-’ (’\u002D’) 组成,
- 后跟零或多个十进制数字(“整数”)的序列,可以选择后跟一个小数,
- 也可以选择后跟一个指数。
- 运算方法:
- public BigDecimal add(BigDecimal augend)
public BigDecimal subtract(BigDecimal subtrahend)
public BigDecimal multiply(BigDecimal multiplicand)
public BigDecimal divide(BigDecimal divisor)
public BigDecimal divide(BigDecimal divisor,int scale,
int roundingMode) - /
public class BigDecimalDemo {
public static void main(String[] args) {
//System.out.println(0.09 + 0.01);
//System.out.println(1.0 - 0.32);
//System.out.println(1.015100);
//System.out.println(1.301 /100);
//System.out.println( 1.0- 0.12);
//public BigDecimal add(BigDecimal augend)
BigDecimal bd = new BigDecimal(“0.01”);
BigDecimal bd2 = new BigDecimal(“0.09”);
System.out.println(“add:”+bd.add(bd2));
//public BigDecimal subtract(BigDecimal subtrahend)
bd = new BigDecimal(“1.0”);
bd2 = new BigDecimal(“0.32”);
System.out.println(“subtract:”+bd.subtract(bd2));
System.out.println("---------------");
//public BigDecimal multiply(BigDecimal multiplicand)
bd = new BigDecimal(“1.015”);
bd2 = new BigDecimal(“100”);
System.out.println(“multiply:”+bd.multiply(bd2));
System.out.println("---------------");
//public BigDecimal divide(BigDecimal divisor)
bd = new BigDecimal(“1.301”);
bd2 = new BigDecimal(“100”);
System.out.println(“divide:”+bd.divide(bd2));
System.out.println("---------------");
//public BigDecimal divide(BigDecimal divisor,int scale,
// int roundingMode) :商几位,小数如何舍去
bd = new BigDecimal(“1.301”);
bd2 = new BigDecimal(“100”);
System.out.println(“BigDecimal divide:”+bd.divide(bd2,4,BigDecimal.ROUND_HALF_UP));
}
}
--------------------------知识点20----------------------------------
package cn.itcast_01;
import java.util.Date;
/*
-
类 Date 表示特定的瞬间,精确到毫秒
-
构造方法:
-
Date()
分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。Date(long date)
分配 Date 对象并初始化此对象,以表示自从标准基准时间
(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)
以来的指定毫秒数。 -
*/
public class DateDemo {
public static void main(String[] args) {
// 创建对象
Date d = new Date();
System.out.println(d);long time = System.currentTimeMillis();Date d1 = new Date(time);System.out.println(d1);}
}
--------------------------知识点21----------------------------------
package cn.itcast_02;
import java.util.Date;
/*
-
成员方法:
-
public long getTime()
-
返回自 1970 年 1 月 1 日 00:00:00 GMT
-
以来此 Date 对象表示的毫秒数。
-
public void setTime(long time)
-
设置此 Date 对象,以表示 1970 年 1 月 1 日 00:00:00 GMT
-
以后 time 毫秒的时间点。
-
*/
public class DateDemo {
public static void main(String[] args) {
// 创建对象
Date d = new Date();
System.out.println(d.getTime());
System.out.println("-------------");d.setTime(1000);System.out.println(d);}
}
--------------------------知识点22----------------------------------
package cn.itcast_01;
import java.util.Calendar;
/*
-
Calendar 类是一个抽象类,它为特定瞬间与一组诸如
-
YEAR、MONTH、DAY_OF_MONTH、HOUR -
等 日历字段之间的转换提供了一些方法,并为操作日历字段 -
(例如获得下星期的日期)提供了一些方法 -
public int get(int field):返回给定日历字段的值。
-
日历类中的每个字段都是静态的成员变量,并且是int类型。 -
Calendar 提供了一个类方法 getInstance,以获得此类型的一个通用的对象。
-
Calendar 的 getInstance 方法返回一个 Calendar 对象, -
其日历字段已由当前日期和时间初始化: Calendar rightNow = Calendar.getInstance(); -
*/
public class CalendarDemo {
public static void main(String[] args) {
Calendar rightNow = Calendar.getInstance();// 年int year = rightNow.get(Calendar.YEAR);// 月int month = rightNow.get(Calendar.MONTH);// 日int day = rightNow.get(Calendar.DAY_OF_MONTH);// 时int hour = rightNow.get(Calendar.HOUR_OF_DAY);// 分int minute = rightNow.get(Calendar.MINUTE);// 秒int second = rightNow.get(Calendar.SECOND);System.out.println(year+"年"+(month+1)+"月"+day+"日 "+hour+":"+minute+":"+second);}
}
--------------------------知识点23----------------------------------
package cn.itcast_02;
import java.util.Calendar;
/*
-
public void add(int field,int amount):根据给定的日历字段和对应的时间,来对当前的日历进行操作
public final void set(int year,int month,int date):设置当前日历的年月日 -
*/
public class CalendarDemo {
public static void main(String[] args) {
// 获取当前的日历时间
Calendar Nowtime = Calendar.getInstance();// 获取年int year = Nowtime.get(Calendar.YEAR);// 获取月int month = Nowtime.get(Calendar.MONTH);// 获取日int day = Nowtime.get(Calendar.DATE);System.out.println(year+"年"+month+"月"+day+"日");// public void add(int field,int amount):根据给定的日历字段和对应的时间,来对当前的日历进行操作// 获取年Nowtime.add(Calendar.YEAR, -1);year = Nowtime.get(Calendar.YEAR);// 获取月month = Nowtime.get(Calendar.MONTH);// 获取日day = Nowtime.get(Calendar.DATE);Nowtime.add(Calendar.YEAR, -1);System.out.println(year+"年"+month+"月"+day+"日");System.out.println("-----------------------------");// 直接设置年月日Nowtime.set(2011,11,11);// 获取年Nowtime.add(Calendar.YEAR, -1);year = Nowtime.get(Calendar.YEAR);// 获取月month = Nowtime.get(Calendar.MONTH);// 获取日day = Nowtime.get(Calendar.DATE);Nowtime.add(Calendar.YEAR, -1);System.out.println(year+"年"+month+"月"+day+"日");System.out.println("-----------------------------");}
}
--------------------------知识点24----------------------------------
package cn.itcast_02;
import java.util.Calendar;
import java.util.Scanner;
/*
-
获取任意一年的二月有多少天
分析:
1.键盘录入年份
2.设置日历为
年: 键盘录入
月: 2
日:1
3.往前减一天,得到日数 -
*/
public class CalendarTest {
public static void main(String[] args) {
// 键盘录入年份
Scanner sc = new Scanner(System.in);
// 提示输入年份
System.out.println(“请输入年份:”);
// 接收年份
int year= sc.nextInt();// 创建日历Calendar c = Calendar.getInstance();// 设置年月日c.set(year, 2,1); // 其实是这一年的3月1日// 获取日int day = c.get(Calendar.DATE);// 减1天c.add(Calendar.DATE, -1);day = c.get(Calendar.DATE);// 输出结果System.out.println(year+"年的2月有"+day+"天.");}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
