一、时间API学习
package shengsai;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class Main1 {
public static void main(String[] args) {
//1970.1.1 0.0.0 开始计算的毫秒数
//求当前时间 时分秒
Scanner sc=new Scanner(System.in);
long time = sc.nextLong();
time-=8*60*60*1000;
System.out.println(new SimpleDateFormat("HH:mm:ss").format(new Date(time)));
}
}
-
SimpleDateFormat
类
这是Java中的一个日期格式化类,用于将日期和时间按照指定的模式格式化为字符串,或者将字符串解析为日期和时间。其中 yyyy 是完整的公元年,MM 是月份,dd 是日期,HH:mm:ss 是时、分、秒。
注意:有的格式大写,有的格式小写,例如 MM 是月份,mm 是分;HH 是 24 小时制,而 hh 是 12 小时制。
-
format()
方法:format()
是SimpleDateFormat
类的一个方法,用于将给定的日期对象格式化为字符串。在这里,调用了format()
方法,传入一个Date
对象new Date(time)
,将其转换为指定格式的时间字符串。 -
Date
类:Date
是Java中表示日期和时间的类。它表示特定的瞬间,可以使用Date
类来获取当前的日期和时间。在这行代码中,使用了new Date(time)
创建一个Date
对象,其中time
是一个时间戳,表示特定的时间点。
二、杨辉三角--等腰三角输出
详细内容:JAVA实现杨辉三角的三种方式_java杨辉三角-CSDN博客
package shengsai;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
//等腰三角形杨辉三角,输入n,返回他的索引位置
Scanner scan = new Scanner(System.in);
long n = scan.nextLong();// 输入值进行查找
//将第三列累加,用公式(1+n)*n/2>10亿,得 n >= 44721 即可
long[] arr = new long[44725];
arr[0] = 1;
long k = 1L;// k 来定义位置
if (n == 1) {
System.out.println(1);
return;
}
for (int i = 1; i < 44725; i++) { //i控制行
for (int j = i; j >= 1; j--) { //j控制每一行的每一个数
arr[j] += arr[j - 1];// 换行后用自己进行运算,以减少内存
if (arr[j] == n) {
System.out.println(k + i - j + 1);
return;// 如果找到了就返回
}
}
k += (i + 1);//k=k+(i+1) 换下一行开始 好难理解啊。。。
}
System.out.println(((1 + n) * n / 2) + 2);
}
}