Java BigInteger类
1. 概述
BigInteger类是java.math包中提供的用于表示大整数的类,它可以处理比long类型更大范围的整数。在实际开发中,当需要进行高精度计算时,就会用到BigInteger类。
2. 用法示例
示例1:计算阶乘
以下代码实现了计算1000的阶乘,并输出结果。
import java.math.*;
public class BigIntegerTest {
public static void main(String[] args) {
BigInteger result = BigInteger.valueOf(1);
for (int i = 1; i <= 1000; i++) {
result = result.multiply(BigInteger.valueOf(i));
}
System.out.println("1000的阶乘为:" + result);
}
}
示例2:判断是否为质数
以下代码实现了判断输入的一个整数是否为质数。
import java.math.*;
public class BigIntegerTest {
public static void main(String[] args) {
BigInteger num = BigInteger.valueOf(123456789);
if (num.isProbablePrime(100)) {
System.out.println(num + "是质数");
} else {
System.out.println(num + "不是质数");
}
}
}
Java BigDecimal类
1. 概述
BigDecimal类是java.math包中提供的用于表示高精度小数的类,它可以处理比double和float类型更高精度的小数。在实际开发中,当需要进行高精度小数运算时,就会用到BigDecimal类。
2. 用法示例
示例1:计算Pi
以下代码实现了计算π的值,并输出结果。
import java.math.*;
public class BigDecimalTest {
public static void main(String[] args) {
MathContext mc = new MathContext(100);
BigDecimal pi = new BigDecimal(0);
BigDecimal t = new BigDecimal(1);
int k = 0;
while (true) {
BigDecimal r = new BigDecimal(2 * k + 1);
BigDecimal s = new BigDecimal(-1);
if (k % 2 == 0) {
s = new BigDecimal(1);
}
BigDecimal u = new BigDecimal(1);
for (int i = 1; i <= k; i++) {
u = u.multiply(new BigDecimal(i));
}
pi = pi.add(s.multiply(t.multiply(r.divide(u, mc))));
t = t.multiply(new BigDecimal(2));
k++;
if (r.divide(u, mc).compareTo(new BigDecimal("1E-100")) == -1) {
break;
}
}
System.out.println("π的值为:" + pi);
}
}
示例2:高精度除法
以下代码实现了高精度除法,输入a和b两个数,输出a/b的结果。
import java.math.*;
public class BigDecimalTest {
public static void main(String[] args) {
BigDecimal a = new BigDecimal("12345678901234567890.123456789");
BigDecimal b = new BigDecimal("9876543210.987654321");
MathContext mc = new MathContext(100);
BigDecimal c = a.divide(b, mc);
System.out.println(a+" / "+b+" = "+c);
}
}
Java Date类
1. 概述
Date类是java.util包中提供的用于表示日期和时间的类。在实际开发中,我们需要处理各种时间日期相关的操作,使用Date类可以对时间日期进行统一的处理。
2. 用法示例
示例1:获取当前日期时间
以下代码实现了获取当前的日期时间,并输出结果。
import java.util.*;
public class DateTest {
public static void main(String[] args) {
Date now = new Date();
System.out.println("当前日期时间为:" + now);
}
}
示例2:计算两个日期之间的天数
以下代码实现了计算2019年2月1日和2022年7月30日之间的天数。
import java.util.*;
import java.text.*;
public class DateTest {
public static void main(String[] args) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date start = sdf.parse("2019-02-01");
Date end = sdf.parse("2022-07-30");
long days = (end.getTime() - start.getTime()) / (1000 * 3600 * 24);
System.out.println("2019年2月1日和2022年7月30日之间相差" + days + "天");
}
}
Java DateFormat类
1. 概述
DateFormat类是java.text包中提供的用于格式化日期时间的类。在实际开发中,需要对日期时间进行格式化,以便更好的呈现。
2. 用法示例
示例1:日期时间格式化
以下代码实现了将日期时间对象格式化为指定的字符串。
import java.util.*;
import java.text.*;
public class DateFormatTest {
public static void main(String[] args) {
Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String strDate = sdf.format(now);
System.out.println("当前日期时间为:" + strDate);
}
}
示例2:字符串转为日期时间
以下代码实现了将字符串转为日期时间对象。
import java.util.*;
import java.text.*;
public class DateFormatTest {
public static void main(String[] args) throws ParseException {
String strDate = "2022-07-30 20:30:15";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = sdf.parse(strDate);
System.out.println("字符串" + strDate + "转为日期时间对象为:" + date);
}
}
Java Calendar类
1. 概述
Calendar类是java.util包中提供的用于表示日历的类。在实际开发中,需要对日期进行运算、比较等操作,使用Calendar类可以方便的对日期进行操作。
2. 用法示例
示例1:计算指定日期的下一天
以下代码实现了计算2022年7月30日的下一天日期,并输出结果。
import java.util.*;
public class CalendarTest {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, 2022);
calendar.set(Calendar.MONTH, Calendar.JULY);
calendar.set(Calendar.DAY_OF_MONTH, 30);
calendar.add(Calendar.DAY_OF_MONTH, 1);
Date date = calendar.getTime();
System.out.println("2022年7月30日的下一天日期为:" + date);
}
}
示例2:计算两日期之间的天数
以下代码实现了计算2019年2月1日和2022年7月30日之间的天数。
import java.util.*;
public class CalendarTest {
public static void main(String[] args) {
Calendar start = Calendar.getInstance();
start.set(Calendar.YEAR, 2019);
start.set(Calendar.MONTH, Calendar.FEBRUARY);
start.set(Calendar.DAY_OF_MONTH, 1);
Calendar end = Calendar.getInstance();
end.set(Calendar.YEAR, 2022);
end.set(Calendar.MONTH, Calendar.JULY);
end.set(Calendar.DAY_OF_MONTH, 30);
long m = end.getTimeInMillis() - start.getTimeInMillis();
long days = m / (1000 * 3600 * 24);
System.out.println("2019年2月1日和2022年7月30日之间相差" + days + "天");
}
}
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java BigInteger类,BigDecimal类,Date类,DateFormat类及Calendar类用法示例 - Python技术站