开始日期:2020-11-09
对日期的处理
返回当前日期
参考Python中的时间处理
https://blog.csdn.net/qq_43568982/article/details/105135381?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-8.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-8.channel_param
Date转String
package BUPT20201109;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateTest01 {
public static void main(String[] args) {
Date nowtime = new Date();
//已经重写了toString
System.out.println(nowtime);
//负责日期格式化
// yyyy年 MM月 dd 日 HH 分 ss秒
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String nowTimeStr=sdf.format(nowtime);
System.out.println(nowTimeStr);
}
}
Mon Nov 09 08:49:46 CST 2020
2020-11-09 08:55:26
String转Date
package BUPT20201109;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateTest01 {
public static void main(String[] args) throws Exception {
String time = "2008-08-08";
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
//前面抛出异常这里才不报错
Date DateTime = sdf2.parse(time);
System.out.println(DateTime);
}
}
统计时长
统计1970到现在的总毫秒数
package BUPT20201109;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateTest01 {
public static void main(String[] args) throws Exception {
//从1970-1-1到当前时间的毫秒数
long nowtime = System.currentTimeMillis();
System.out.println(nowtime);
}
}
可以用来统计时长
package BUPT20201109;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateTest01 {
public static void main(String[] args) throws Exception {
//从1970-1-1到当前时间的毫秒数
long begin = System.currentTimeMillis();
for (int i = 0; i <100 ; i++) {
System.out.println(i);
}
long end=System.currentTimeMillis();
System.out.println(end-begin+"毫秒");
}
}
通过毫秒构造Date对象
package BUPT20201109;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateTest02 {
public static void main(String[] args) {
Date Time = new Date(1);//参数是一个毫秒
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
System.out.println(sdf.format(Time));//北京是东八区,比标准格林尼治早8小时
}
}
数字格式化
decimal
巧了,Python还是有这种东西,参考:
https://blog.csdn.net/qq_43568982/article/details/105135381
package BUPT20201109;
import java.text.DecimalFormat;
/*
#代表任意数字
,代表每千位分隔一次
0 不够时补零
. 代表小数点
*/
public class DecimalTest {
public static void main(String[] args) {
DecimalFormat df = new DecimalFormat("###,###.0000");
//小数点后要么是### 要么是000 不能混用
//返回的是字符串
String s = df.format(134.5556);
System.out.println(s);
}
}
BigDecimal
属于Java对象,引用数据类型,不属于基本数据类型,用在财务软件中,保证高精度
package BUPT20201109;
import java.math.BigDecimal;
public class BigDecimalTest {
public static void main(String[] args) {
BigDecimal v1 = new BigDecimal(100);
BigDecimal v2 = new BigDecimal(200);
//求和不能直接相加,因为两个都是引用,调用add方法来求和
System.out.println(v1.add(v2));
System.out.println(v1.divide(v2));
}
}
产生随机数
惊人的相似:参考Python
https://blog.csdn.net/qq_43568982/article/details/104541007
生成五个随机数(0-100),如果重复则重新生成
package BUPT20201109;
import java.util.Arrays;
import java.util.Random;
//随机生成五个0-100的随机数,如果重复则重新生成
public class RandomTest {
public static void main(String[] args) {
Random random = new Random();
int[] arr = new int[5];
for (int i = 0; i < 5; i++) {
arr[i] = -1;
//赋初值,不然分不清给的0是初始化的0还是随机生成的0
}
int index = 0;
while (index < arr.length) {
int num = random.nextInt(101);
if (!contains(arr, num)) {
arr[index++] = num;
}
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
public static boolean contains(int[] arr, int key) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] == key) {
return true;
}
}
//找不到返回的-1
return false;
}
}
枚举enum
不使用枚举的情况
package enumTest;
public class enumTest01 {
public static void main(String[] args) {
System.out.println(divide(10, 0));
}
public static int divide(int a, int b) {
try {
//没有异常返回1,有异常返回0
int c = a / b;
return 1;
} catch (Exception e) {
return 0;
}
}
}
像上面这种返回不是1就是0的情况,用boolean更恰当
public static boolean divide(int a, int b) {
try {
//没有异常返回1,有异常返回0
int c = a / b;
return true;
} catch (Exception e) {
return false;
}
}
但如果方法返回的结果不只是true和false,此时需要用枚举类型来匹配
使用枚举的情况
package enumTest;
public class enumTest02 {
public static void main(String[] args) {
System.out.println(divide(100, 10));
}
public static Result divide(int a, int b) {
try {
int c = a / b;
return Result.Tie;
} catch (Exception e) {
return Result.Fail;
}
}
}
//枚举中的每个值可以看做常量
enum Result {
Success, Fail, Tie
}
这种情况也是两种情况,建议用boolean,但两种以上用枚举
package enumTest;
public enum Season {
Spring, Summer, Autumn, Winter
}
package enumTest;
public class enumTest03 {
public static void main(String[] args) {
//switch支持枚举
switch (Season.Autumn) {
case Spring:
System.out.println("春天");
break;
case Summer:
System.out.println("夏天");
break;
case Autumn:
System.out.println("秋天");
break;
case Winter:
System.out.println("冬天");
break;
}
}
}
结束时间:2020-11-09