One:
学习
循环套用。
矩形,直角三角形,金字塔问题,空心金字塔。
package com.doit.day11.Demo01;
public class Sanjiao {
public static void main(String[] args) {
//打印直角三角形
int t = 10; //表示层数
for (int i = 1; i <=5; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
System.out.println("-----------------------------");
//打印金字塔
for (int i = 1; i <=5; i++) {
for (int k = 1; k <= 5-i; k++) {
System.out.print(" ");
}
for (int j = 1; j <= 2*i-1; j++) {
System.out.print("*");
}
System.out.println();
}
System.out.println("----------------------------");
//打印空心金字塔
for (int i = 1; i <=t; i++) {
//i 表示行 , j表示列
for (int k = 1; k <= t-i; k++) {
System.out.print(" ");
}
for (int j = 1; j <= 2*i-1; j++) {
if (j == 1 || j == i*2-1 || i==t) {
System.out.print("*");
}else {
System.out.print(" ");
}
}
System.out.println();
}
System.out.println("-------------------------");
}
}
//学习逻辑思路。
2.。
String 类中的StringBuilder:
package com.doit.day12.Demo01;
public class Test01 {
public static void main(String[] args) {
int[] arr = {3, 8, 2, 5, 0};
//Array(arr);
String s = Array(arr);
System.out.println(s);
}
public static String Array ( int[] arr){
StringBuilder sb = new StringBuilder("[");
for (int i = 0; i < arr.length; i++) {
sb.append(arr[i]);
if (i == arr.length-1) {
sb.append("]");
}else{
sb.append(",");
}
}
return sb.toString();
}
}
//输出结果为字符串型[3,8,2,5,0]
3.。
Date 时间日期类
package com.doit.day12.Demo01;
import java.util.Date;
/*
*java.util.Date 日期类
* 时间原点:1970年1月1日 00:00:00
* 一秒等于1000毫秒
* 构造方法:
* public Date () 当前日期对象
* public Date (long time) 指定毫秒值的日期对象
*
* */
public class Test02 {
public static void main(String[] args) {
//当前时间对象
Date now = new Date();
System.out.println(now);
//从时间原点到 当前时间经过的 毫秒值
long time = now.getTime();
System.out.println(time);
//时间原点
now.setTime(0);
System.out.println(now);
}
}
补充:时间为啥是1970年1月1日00:00:00,
UNIX操作系统诞生于1969年,考虑到计算机产生的年代和应用的时限综合取了1970年1月1日作为UNIX TIME的纪元时间。
4. 日期生日,计算存活天数
package com.doit.day12.Demo01;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class Test04 {
public static void main(String[] args) throws ParseException {
Scanner sc = new Scanner(System.in);
System.out.println("请输入您的生日(yyyy-MM-dd):");
String sdate = sc.nextLine();
int day = sum(sdate);
System.out.println(day);
}
public static int sum(String sdate) throws ParseException {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date birthDay = df.parse(sdate);
//获取生日值的毫秒
long birthTime = birthDay.getTime();
long nowTime = new Date().getTime();
int day = (int)((nowTime - birthTime)/1000/3600/24);
return day;
}
}
5、
package com.doit.day12.Demo01;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
public class Demo06 {
public static void main(String[] args) {
//创建日历对象
Calendar c = Calendar.getInstance();
// //将日历设置为2000年5月1日 现在是2023年4月5日
// c.add(Calendar.YEAR,-23);
// c.add(Calendar.MONTH,1);
// c.add(Calendar.DATE,-4);
//不同表达方式2000年5月1日
// c.set(Calendar.YEAR,2000);
// c.set(Calendar.MONTH,4);
// c.set(Calendar.DATE,1);
c.set(2000,4,1); //直接输入在set中也可行
//将日历转换为日期对象
Date time = c.getTime();
System.out.println(time);
//时区
TimeZone timeZone = c.getTimeZone();
System.out.println(timeZone);
}
}
6、Date
java.util.Date类 表示特定的瞬间,精确到毫秒。1000毫秒等于1秒。
Date类构造方法
-
public Date():从运行程序的此时此刻到时间原点经历的毫秒值,转换成Date对象,分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
-
public Date(long date):将指定参数的毫秒值date,转换成Date对象,分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即1970年1月1日00:00:00 GMT)以来的指定毫秒数。
public static void main(String[] args) {
// 创建日期对象,把当前的时间
System.out.println(new Date()); // Tue Jan 16 14:37:35 CST 2020
// 创建日期对象,把当前的毫秒值转成日期对象
System.out.println(new Date(0)); // Thu Jan 01 08:00:00 CST 1970
}
Date类的常用方法
-
public long getTime() 把日期对象转换成对应的时间毫秒值。
-
public void setTime(long time) 把方法参数给定的毫秒值设置给日期对象。
public static void main(String[] args) {
//创建日期对象
Date date = new Date();
//public long getTime()获取的是日期对象从1970年1月1日 00:00:00到现在的毫秒值
System.out.println(date.getTime());
//public void setTime(long time):设置时间,给的是毫秒值
date.setTime(0);
System.out.println(date);
}
日期对象和毫秒值的相互转换
日期是不能进行数学计算的,但是毫秒值可以,在需要对日期进行计算时,可以现将日期转成毫秒值后在进行计算。
- 日期对象转成毫秒值:
- Date date = new Date(); date.getTime()
- System.currentTimeMillis()
- 毫秒值转成日期对象:
- Date date = new Date(long 毫秒值)
- date.setTime(long 毫秒值)
DateFormat类
java.text.DateFormat 是日期/时间格式化子类的抽象类,我们通过这个类可以帮我们完成日期和文本之间的转换,也就是可以在Date对象与String对象之间进行来回转换。
- 格式化:按照指定的格式,把Date对象转换为String对象。
- 解析:按照指定的格式,把String对象转换为Date对象。
构造方法
由于DateFormat为抽象类,不能直接使用,所以需要常用的子类java.text.SimpleDateFormat。这个类需要一个模式(格式)来指定格式化或解析的标准。构造方法为:
- public SimpleDateFormat(String pattern):用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat。
参数pattern是一个字符串,代表日期时间的自定义格式。
常用的格式规则为:
标识字母(区分大小写) 含义
y 年
M 月
d 日
H 时
m 分
s 秒
备注:更详细的格式规则,可以参考SimpleDateFormat类的API文档。
转换方法
-
String format(Date date)传递日期对象,返回格式化后的字符串。
-
Date parse(String str)传递字符串,返回日期对象。
public static void main(String[] args) throws ParseException {
//格式化:从 Date 到 String
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat(“yyyy年MM月dd日 HH:mm:ss”);
String s = sdf.format(d);
System.out.println(s);
System.out.println(“--------”);//从 String 到 Date String ss = "2048-08-09 11:11:11"; //ParseException SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date dd = sdf2.parse(ss); System.out.println(dd); }
Calendar日历类
概念:
日历我们都见过
java.util.Calendar是日历类,在Date后出现,替换掉了许多Date的方法。该类将所有可能用到的时间信息封装为静态成员变量,方便获取。日历类就是方便获取各个时间属性的。
日历对象获取方式
Calendar是抽象类,不能创建对象,需要使用子类对象。java.util.GregorianCalendar类是Calendar的子类,但是创建日历对象需要根据本地的时区,语言环境来创建,比较困难,Calendar类提供了静态方法 getInstance()直接获取子类的对象。
public static Calendar getInstance():使用默认时区和语言环境获得一个日历。
Calendar cal = Calendar.getInstance();
常用方法
- public int get(int field):返回给定日历字段的值。
- public void set(int field, int value):将给定的日历字段设置为给定值。
- public abstract void add(int field, int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量。
- public Date getTime():返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。
日历字段
Calendar类中提供很多静态成员,直接类名调用,代表给定的日历字段:
字段值 含义
YEAR 年
MONTH 月(从0开始,可以+1使用)
DAY_OF_MONTH 月中的天(几号)
HOUR 时(12小时制)
HOUR_OF_DAY 时(24小时制)
MINUTE 分
SECOND 秒
DAY_OF_WEEK 周中的天(周几,周日为1,可以-1使用)
Two:
加强:
String类,Date类,学习方法和记忆一些常用的格式。
Three:
天气:晴,有微风
心情:畅快,
Four:
期望:老师教的都会就好。