Math类没有构造方法不能创建对象
public class MathDemo01 {
public static void main(String[] args) {
System.out.println(Math.PI);
// 绝对值
// 如果是正数,返回本身。
// 如果是负数,返回相反数
System.out.println(Math.abs(-3));
// 3 * 3 * 3 = 27
System.out.println(Math.cbrt(27.1));
// 向上取整 3.5
// 离它最近的大于自身的整数
System.out.println(Math.ceil(-3.5));
// 向下取整
// 离它最近的小于自身的整数
System.out.println(Math.floor(-3.5));
// 获取最大值
System.out.println(Math.max(3.55, 6.77));
// 四舍五入
System.out.println(Math.round(3.55));
// 获取伪随机数
// 范围是[0,1)
System.out.println(Math.random());
// 获取6位数字的验证码
// 给字符数组
char[] chs = {'0','1','2','3','4','5','6','7','8','9'};
String str = "";
for (int i = 0;i < 6;i++){
// 获取随机索引
int index = (int)(Math.random()* 10);
char c = chs[index];
str += c;
}
System.out.println(str);
}
}
import java.math.BigDecimal;
import java.math.BigInteger;
public class MathDEmo2 {
public static void main(String[] args) {
double d1=3.00;
double d2=2.99;
System.out.println(d1-d2);
///精确计算的应用
//创建对象
//想要精确计算,需要传入字符串,否则不能精确计算。
//传入字符串后,将字符串传入字符数组,通过小数点按位对齐
BigDecimal bd=new BigDecimal(3);
BigDecimal bd1=new BigDecimal(2.99);
System.out.println(bd.subtract(bd1));
//想要大量数字计算
BigInteger bi=new BigInteger("");
BigInteger bi1=new BigInteger("");
}
}
import java.util.Arrays;
public class MathDemo3 {
//两个大数相乘
public static void main(String[] args) {
int []arr1={5,6,8,9};
int []arr2={3,9,7,4};
//保存结果的数组
int []result =new int [8];
for(int i=0;i<4;i++){
for(int j=0;j<4;j++){
result[i+j]+=arr1[i]*arr2[j];
}
}//遍历result
for(int i=0;i<result.length-1;i++){
int temp=result[i];
result[i]=temp%10;//获取个位
result[i+1]+=temp/ 10;
}
System.out.println(Arrays.toString(result));
}
}
Calendar
import java.util.Calendar;
public class CalendarDemo {
public static void main(String[] args) {
// 返回的不是Calendar这个抽象类,还是抽象类的子类
Calendar c = Calendar.getInstance();
System.out.println(c);
// 获取年
System.out.println(c.get(Calendar.YEAR));
// 获取月 日
// 注意 :月份一定要记得加1
System.out.println((c.get(Calendar.MONTH) + 1 + "月" + c.get(Calendar.DAY_OF_MONTH) + "日" ));
// 获取这个月的第几周
System.out.println(c.get(Calendar.WEEK_OF_MONTH));
}
}
Date类
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DataDemo {
///过期方法,已经不再更新的方法
public static void main(String[] args) throws ParseException {
//创建日期
//CST中国标准时间
//1970年1月1日0点0分0秒是计算机元年
Date date=new Date();
System.out.println(date);
//将字符串转换成日期
String str="2012-09-23";
SimpleDateFormat sfd=new SimpleDateFormat("yyyy-MM-dd");
Date date1 =sfd.parse(str);
System.out.println(date1);
//将日期转换成字符串
SimpleDateFormat sfd1=new SimpleDateFormat("yyyy年MM月dd日");
String str1=sfd1.format(new Date());
System.out.println(str1);
}
}
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.temporal.ChronoUnit;
public class TimeDemo {
public static void main(String[] args) {
// LocalDate 只使用日期
// LocalDate ld = LocalDate.now();
// // 指定日期
// LocalDate ld1 = LocalDate.of(2008, 8, 8);
// // 加日期
// // 加3天
// ld1 = ld1.plus(3, ChronoUnit.DAYS);
// // 减日期
// ld1 = ld1.minus(2,ChronoUnit.YEARS);
// System.out.println(ld1);
// System.out.println(ld);
//LocalTime 只使用时间
LocalTime lt = LocalTime.of(9, 40, 30);
System.out.println(lt);
// 加减时间
lt = lt.plus(3, ChronoUnit.HOURS);
System.out.println(lt);
}
}
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
public class PracticeDemo {
public static void main(String[] args) throws ParseException {
// 假设上海交易所每个月的第三周的周六开启交易
// 其它时间都不交易
// 让用户输入特定形式字符串格式的日期
// 判断这个日期是否在交易中
// 提示用户:交易未开启 交易正在进行中 交易已结束
// 1.获取用户输入的文字
System.out.println("请您输入要查询的日期,嘤嘤嘤");
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
// "19900818" --> date --> Calendar
// 2.将用户输入的文字转换为date类型
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
Date date = sdf.parse(str);
// 3.将date设置给日历类
// 3.1 创建日历类
Calendar c = Calendar.getInstance();
// 3.2 设置时间给日历
c.setTime(date);
// 4.获取周和周几
// 周几
int day = c.get(Calendar.DAY_OF_WEEK);
// 第几周
int week = c.get(Calendar.WEEK_OF_MONTH);
// System.out.println(day);
// System.out.println(week);
// 5.判断交易状态
if (day == 7 && week == 3){
System.out.println("交易正在进行中");
}else if (week < 3 || week ==3 && day < 7){
System.out.println("交易未开启");
}else{
System.out.println("交易已结束");
}
}
}
固定格式输出:
import java.text.DecimalFormat;
public class FomatDemo {
//固定格式的转换
public static void main(String[] args) {
System.out.println();
double s=2.344;
//创建对象
//0表示占位符,你没有数字就用0代替
//如果有数字,就正常显示
//如果小数点前面有两个0,那么数字只有一位,用0占位格式化:“00.00”
//"00.0#"//#依然表示占位,最后一位有0舍去,无0保留
DecimalFormat df =new DecimalFormat("0.00");
//参数,需要格式化的内容
String S=df.format(s);
System.out.println(S);
//科学计数法
long l=29484835L;
DecimalFormat df1=new DecimalFormat("0.00E0");
System.out.println(df1.format(l));
}
}