常用API02

Date

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

构造方法

Date():使用无参构造器创建的对象可以获取本地当前时间。
Date(long date)

常用方法

getTime():返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象
表示的毫秒数。
toString():把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat),zzz是时间标准。
其它很多方法都过时了。

SimpleDateFormat

Date类的API不易于国际化,大部分被废弃了,java.text.SimpleDateFormat
类是一个不与语言环境有关的方式来格式化和解析日期的具体类。
它允许进行格式化:日期à文本、解析:文本à日期

SimpleDateFormat() :默认的模式和语言环境创建对象
public SimpleDateFormat(String pattern):该构造方法可以用参数pattern
指定的格式创建一个对象,该对象调用:
public String format(Date date):方法格式化时间对象date

public Date parse(String source):从给定字符串的开始解析文本,以生成
一个日期。

使用方式

在这里插入图片描述

字符串转Date

在这里插入图片描述

练习

/**

  • Date d1 = new Date() ; 无参构造 是获取当前系统时间
  • Date d2 = new Date(long millis) ; 有参构造,是获取从时间原点到指定毫秒数的时间
  • 获取当前时间前十分钟:
  • 1.先获取当前时间
  • 2.减去10分好面熟
  • 3.根据毫秒数创建时间对象
  • @author prisident

*/
public class date03 {
public static void main(String[] args) {
// Date d1 = new Date() ; 无参构造 是获取当前系统时间
Date d1 = new Date(1000);
System.out.println(d1);

    // 获取当前时间毫秒数
		long currentMillis = System.currentTimeMillis(); 
		//  减去10分钟的毫秒数
		currentMillis -= 1000*60*10;
		// 根据毫秒数创建时间对象
		Date date = new Date(currentMillis);
		// 创建时间格式化对象
		
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
		// 格式化并打印
		//1970-01-01 08:00:01 000     格林威时间
	//	2021-01-21 19:20:35 148

		System.out.println(sdf.format(d1 ));
		System.out.println(sdf.format(date));

}
}

6. Calendar

1、Calendar是一个抽象基类,主用用于完成日期字段之间相互操作的功能。
2、获取Calendar实例的方法
使用Calendar.getInstance()方法
调用它的子类GregorianCalendar的构造器。
3、一个Calendar的实例是系统时间的抽象表示,通过get(int field)方法来取得想 要的时间信息。比如YEAR、MONTH、DAY_OF_WEEK、HOUR_OF_DAY 、 MINUTE、SECOND
public void set(int field,int value)
public void add(int field,int amount)
public final Date getTime()
public final void setTime(Date date)
4、注意:
获取月份时:一月是0,二月是1,以此类推,12月是11
获取星期时:周日是1,周二是2 , 。。。。周六是7

在这里插入图片描述

	// 创建日历对象
	Calendar c = Calendar.getInstance();
	// 获取当前是本周第几天,周日是第一天
	System.out.println(c.get(Calendar.DAY_OF_WEEK));
	// 获取今天是多少号(本月第几天)
	System.out.println(c.get(Calendar.DAY_OF_MONTH));

	// 获取年
	int year = c.get(Calendar.YEAR);
	// 获取月 从0开始,所以结果+1
	int month = c.get(Calendar.MONTH) + 1;
	// 获取日
	int day = c.get(Calendar.DAY_OF_MONTH);

	// 获取时
	int hour = c.get(Calendar.HOUR);
	// 获取分
	int minute = c.get(Calendar.MINUTE);
	// 获取秒
	int second = c.get(Calendar.SECOND);
	// 获取本周第几天
	int weekday = c.get(Calendar.DAY_OF_WEEK);

	// 把本周第几天转换为星期
	String weekdayStr = "星期";
	switch (weekday) {
	case 1:
		weekdayStr += "日";
		break;
	case 2:
		weekdayStr += "一";
		break;
	case 3:
		weekdayStr += "二";
		break;
	case 4:
		weekdayStr += "三";
		break;
	case 5:
		weekdayStr += "四";
		break;
	case 6:
		weekdayStr += "五";
		break;
	case 7:
		weekdayStr += "六";
		break;
	}
	System.out.println(year+"年"+month+"月"+day+"日  "+hour+":"+minute+":"+second+"  "+weekdayStr);

7枚举Enum

https://www.cnblogs.com/zhanqing/p/11076646.html

枚举类型是Java 5中新增特性的一部分,它是一种特殊的数据类型,之所以特殊是因为它既是一种类(class)类型却又比类类型多了些特殊的约束,但是这些约束的存在也造就了枚举类型的简洁性、安全性以及便捷性。下面先来看看什么是枚举?如何定义枚举?

7.1 Enum之前定义枚举的方式

在这里插入图片描述

上述的常量定义常量的方式称为int枚举模式,这样的定义方式并没有什么错,但它存在许多不足,如在类型安全和使用方便性上并没有多少好处,如果存在定义int值相同的变量,混淆的几率还是很大的,编译器也不会提出任何警告,因此这种方式在枚举出现后并不提倡,现在我们利用枚举类型来重新定义上述的常量,同时也感受一把枚举定义的方式,如下定义周一到周日的常量

7.2Enum之后定义枚举的方式

//枚举类型,使用关键字enum
enum Day {
MONDAY, TUESDAY, WEDNESDAY,
THURSDAY, FRIDAY, SATURDAY, SUNDAY
}

相当简洁,在定义枚举类型时我们使用的关键字是enum,与class关键字类似,只不过前者是定义枚举类型,后者是定义类类型。枚举类型Day中分别定义了从周一到周日的值,这里要注意,值一般是大写的字母,多个值之间以逗号分隔。同时我们应该知道的是枚举类型可以像类(class)类型一样,定义为一个单独的文件,当然也可以定义在其他类内部,更重要的是枚举常量在类型安全性和便捷性都很有保证,如果出现类型问题编译器也会提示我们改进,但务必记住枚举表示的类型其取值是必须有限的,也就是说每个值都是可以枚举出来的,比如上述描述的一周共有七天

7.3 Enum使用

在这里插入图片描述

7.4 Enum优点

Enumeration : enum枚举类型
当我们使用常量的时候就可以使用枚举,他在编译时候就会发现错误
简单来讲,就可以看做一个常量的集合
当我们需要一系列有限的值,并且用的较多,而不更改的情况下(使用常量的时候)
写枚举 更容易发现错误,因为在编译阶段对类型进行检查,从而减少错误
在这里插入图片描述
以上程序中,本来应该是登陆成功,由于我们不小心拼写错误,导致结果为登陆失败
但是 并不会提示我们拼写错误了,比如我们要使用SUCCESS和FAIL 的话,一般会定义为常量

在这里插入图片描述

这样的话,可以避免我们拼写错误,只需要保证Result类没拼错即可

但是从java1.5开始 引入enum之后,这种写法 显得比较繁琐

8Radom

随机数生成器 从0开始
public class Radom01 {
public static void main(String[] args) {
// 创建随机数对象
Random r = new Random();
//参数写0-n-1随机生成大户
// 0~100 中 这 101个数内 随机生成
int i1 = r.nextInt(101);
System.out.println(i1);
// 如何生成10-20?
//创建对象
Random random = new Random();
// 生成0-10随机
int num = random.nextInt(11);
// +=10 就是 10~20
num+=10;
System.out.println(num);
}

}

Math

  • 提供科学计算和基本的数字操作方法
  • 常用的方法都是静态的,直接类名调用即可,Math是在java.lang.Math 所以使用不需要导包

常用方法

abs 绝对值 acos,asin,atan,cos,sin,tan 三角函数 sqrt 平方根
pow(double a,doble b) a的b次幂 log 自然对数
exp e为底指数
max(double a,double b)
min(double a,double b)
random() 返回0.0到1.0的随机数
long round(double a) double型数据a转换为long型(四舍五入)
toDegrees(double angrad) 弧度—>角度
toRadians(double angdeg) 角度—>弧度

公式

package _04_Math;
/**

  • math类:
  • 提供科学计算和基本的数字操作方法,一般为double
  • 常用的方法都是静态的,直接类名调用即可,Math是在java.lang.Math 所以使用不需要导包
  • @author prisident

*/
public class Math01 {
public static void main(String[] args) {

        // abs : 绝对值
        System.out.println( Math.abs(-2.3)); 

        // 取整不要小数
        // ceil : 向上取整  ,  只要小数大于0  就进位+1     
        System.out.println(Math.ceil(12.000000001)); 
		// floor : 向下取整 , 不要小数   
		System.out.println(Math.floor(12.99999999));
		
		
		
		// Max : 比较谁大
		System.out.println(Math.max(2.2, 2.1)); 
		// Min : 比较谁小
		System.out.println(Math.min(2.2, 2.1)); 
		
		// sqrt : 计算平方根,就是开平方
		// NaN : Not a Number 不是一个数    不能为负数
		System.out.println(Math.sqrt(-25));//NaN 
		
		
		System.out.println(Math.sqrt(16)); // 4.0
		// cbrt : 计算立方根
		System.out.println(Math.cbrt(8));  // 2.0
		
		// random : 随机数,获取一个大于等于0.0 并且小于 1.0的随机数,不会等于1.0
		System.out.println(Math.random());
		// 生成大于等于0 且小于10 
		System.out.println(Math.random()*10);
		
		// rint : 四舍五入   x.5   ,结果取偶数
		System.out.println(Math.rint(2.4)); // 2.0
		System.out.println(Math.rint(3.5)); // 4.0
		
		
		//  取整数,  进位应为3.0  但是由于取偶数所以为2.0
		System.out.println(Math.rint(2.5)); // 2.0
		// pow : 几次幂 , 如 2的3次方
		System.out.println(Math.pow(2, 3)); // 8.0

}
}

10nunmber

10.1 DecimalFormat

数字格式化
# 表示任意数字,0-9任意单个数字
, 千分位
. 小数点
0 补位
package _07_Number;

import java.text.DecimalFormat;
/**

  • 数字格式化
  • 表示任意数字,0-9任意单个数字 , 千分位 . 小数点 0 补位

  • @author prisident

*/
public class Number1 {
public static void main(String[] args) {

	//  1. 千分位分割
	//创建格式
	DecimalFormat df = new DecimalFormat("###,###");
	// 123,456
	System.out.println(df.format(123456));
	
	
	
	
	//  2.加入千分位,保留两位小数
	 df = new DecimalFormat("###,###.##");
	 // 123,456.13   四舍五入进位(5没进一)
	System.out.println(df.format(123456.126)); 
	// 123,456.2
	// 如果位数不够两位,就不显示,有几位显示几位,超过两位 就只显示两位
	System.out.println(df.format(123456.2)); 
	
	
	
	
	// 3. 加入千分位,保留两位小数,不够两位补0
	df = new DecimalFormat("###,###.00");
	System.out.println(df.format(123456.2)); // 123,456.20
}

}

10.2BigDecimal和BigInteger

8.1 BigInteger
1、Integer类作为int的包装类,能存储的最大整型值为2^31-1,Long类也是有限的, 最大为2^63-1。如果要表示再大的整数,不管是基本数据类型还是他们的包装类 都无能为力,更不用说进行运算了。

2、java.math包的BigInteger可以表示不可变的任意精度的整数。BigInteger 提供
所有 Java 的基本整数操作符的对应物,并提供 java.lang.Math 的所有相关方法。 另外,BigInteger 还提供以下运算:模算术、GCD 计算、质数测试、素数生成、 位操作以及一些其他操作。

3、构造器
BigInteger(String val):根据字符串构建BigInteger对象

4、常用方法
public BigInteger abs():返回此 BigInteger 的绝对值的 BigInteger。
BigInteger add(BigInteger val) :返回其值为 (this + val) 的 BigInteger
BigInteger subtract(BigInteger val) :返回其值为 (this - val) 的 BigInteger
BigInteger multiply(BigInteger val) :返回其值为 (this * val) 的 BigInteger
BigInteger divide(BigInteger val) :返回其值为 (this / val) 的 BigInteger。整数 相除只保留整数部分。
BigInteger remainder(BigInteger val) :返回其值为 (this % val) 的 BigInteger。
BigInteger[] divideAndRemainder(BigInteger val):返回包含 (this / val) 后跟(this % val) 的两个 BigInteger 的数组。
BigInteger pow(int exponent) :返回其值为 (thisexponent) 的 BigInteger。

8.2 BigDecimal
一般的Float类和Double类可以用来做科学计算或工程计算,但在商业计算中, 要求数字精度比较高,故用到java.math.BigDecimal类。
BigDecimal类支持不可变的、任意精度的有符号十进制定点数。
构造器
public BigDecimal(double val)
public BigDecimal(String val)
常用方法
public BigDecimal add(BigDecimal augend)
public BigDecimal subtract(BigDecimal subtrahend)
public BigDecimal multiply(BigDecimal multiplicand)
public BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)

使用

package _07_Number;
/**

  • 任意长的数BigInteger

  • 他有加减乘除取余的方法
    */
    import java.math.BigDecimal;
    import java.math.BigInteger;
    public class BigInteger_01 {
    public static void main(String[] args) {
    //可以放任意长度, 数字过大可以用
    BigInteger v1 = new BigInteger(“800”);
    BigInteger v2 = new BigInteger(“100”);
    // 加法 900
    System.out.println(v1.add(v2));

     // 减法   700
     System.out.println(v1.subtract(v2)); 
     // 乘法 80000
     System.out.println(v1.multiply(v2));
     // 除法8
     System.out.println(v1.divide(v2)); 
     // 取余0
     System.out.println(v1.remainder(v2));
     
     //小数的加减乘除
     BigDecimal v3 = new BigDecimal(123.5);
     BigDecimal v4 = new BigDecimal(123.3);
     //加246.7999999999999971578290569595992565155029296875
     System.out.println(v3.add(v4));
     //减0.2000000000000028421709430404007434844970703125
     System.out.println(v3.subtract(v4));
    

    }
    }

练习

package _07_Number;
//需求 1-10的阶乘
public class BigInteger {
public BigInteger(String string) {
// TODO Auto-generated constructor stub
}
public static void main(String[] args) {
// 30传入方法钟
long r = sum(5);
System.out.println®;

}
// 用递归的方法实现
public static long sum(long i){
	if (i<=1) {
		return 1;
	}
	// 返回 
	return i * sum(i-1);
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在C# WebApi项目实践中,可以采用ASP.NET Core 3.1 WebApi的干净体系结构来实现。您可以使用开源的BoilerPlate模板来创建一个干净的体系结构。通过这个模板,您可以获得ASP.NET Core的一些基础功能,如身份验证和授权管理。 在控制器中,您可以使用HttpPost和HttpGet属性来定义一个既支持POST请求又支持GET请求的方法。例如,您可以在控制器中添加一个CheckUserName方法来检查用户名是否已经注册。该方法通过调用UserInfoGetCount方法来查询是否存在该用户,然后根据查询结果返回相应的响应消息。 在WebApi项目中的appsettings.json文件可以修改应用程序和身份验证的连接字符串,以适应您的具体需求。 在构建WebApi项目时,您可以注意到它与MVC非常相似。首先,您可以修改路由以添加action,这样可以更方便地处理请求。在App_start文件中,WebApi使用没有action的路由规则,您可以根据需要修改路由规则使其与MVC的路由规则相同。 通过以上的实践,您可以构建出一个基于C#的WebApi项目,并实现一些常用的功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [CleanArchitecture.WebApi:ASP.NET Core 3.1 WebAPI的Clean Architecture的实现。建立时考虑了松散耦合的...](https://download.csdn.net/download/weixin_42097189/15896591)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [C#搭建一个简单的web api项目](https://blog.csdn.net/hdy14/article/details/88187455)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值