4.2.2GregorianCalendar 这个类在工作中没有用过,看了下几个关键API,按自己理解写了一次 public class Main { public static void main ( String [] args ){ //设置英语时区 Locale . setDefault ( Locale . ENGLISH );
4.2.2 GregorianCalendar
这个类在工作中没有用过,看了下几个关键API,按自己理解写了一次
public class Main {public static void main(String[] args){
//设置英语时区
Locale.setDefault(Locale.ENGLISH);
//初始化,并获取今天日期
GregorianCalendar c = new GregorianCalendar();
int day = c.get(Calendar.DAY_OF_MONTH);
//设置为1号
c.set(Calendar.DAY_OF_MONTH,1);
//打印第一行日期简写
printWeekDayTitle();
//打印第一行日期前面空白
printFirstLineTab(c);
//打印日期主体
printCenter(c,day);
}
private static void printCenter(GregorianCalendar c, int day){
int firstDay = c.getFirstDayOfWeek();
do{
//打印日期
System.out.print(c.get(Calendar.DAY_OF_MONTH));
if(day==c.get(Calendar.DAY_OF_MONTH)){
System.out.print("*");
}
System.out.print("\t");
//移动
c.add(Calendar.DAY_OF_MONTH,1);
//回到 firstday 换行
if(firstDay==c.get(Calendar.DAY_OF_WEEK)){
System.out.println();
}
}while (c.get(Calendar.DAY_OF_MONTH)!=1);
}
private static void printFirstLineTab(GregorianCalendar c){
int weekDay = c.get(Calendar.DAY_OF_WEEK);
for(int i = 1; i < weekDay; i++){
System.out.print("\t");
}
}
private static void printWeekDayTitle(){
String []weekDays = new DateFormatSymbols().getShortWeekdays();
for(int i = 1; i < weekDays.length; i++){
System.out.print(weekDays[i]);
System.out.print("\t");
}
System.out.println();
}
基本用法:
public class Main {public static void main(String[] args){
GregorianCalendar c1 = new GregorianCalendar();
GregorianCalendar c2 = new GregorianCalendar(2022,0,15);
GregorianCalendar c3 = new GregorianCalendar(2022,0,15,16,58,59);
Main.print(c3);
c3.set(Calendar.YEAR,2021);
Main.print(c3);
Date time = c3.getTime();
c3.setTime(new Date());
Main.print(c3);
}
private static void print(GregorianCalendar c3){
String s = c3.get(Calendar.YEAR)+"-"+((Calendar.MONTH)+1)+"-"+c3.get(Calendar.DAY_OF_MONTH)+" "+Calendar.HOUR_OF_DAY+":"+c3.get(Calendar.MINUTE)+":"+c3.get(Calendar.SECOND);
System.out.println(s);
}
}
4.3 用户自定义类
field: 字段、属性、全局变量,用于表达类的信息,如员工的名称、工资、年龄等
constructor: 构造器、构造函数,相当于公司雇佣了一名员工
method:方法、函数,员工在公司能做什么,职责是什么,完成怎样的工作
4.3.1 Employee 类
<Employee.java>
public class Employee {//field
private double salary;
private String name;
private LocalDate hireDay;
//constructor
public Employee(String n, double s, int year, int month, int day){
name = n;
salary = s;
hireDay = LocalDate.of(year,month,day);
}
//method
public double getSalary() {
return salary;
}
public LocalDate getHireDay() {
return hireDay;
}
public String getName() {
return name;
}
public void raiseSalary(int byPersent){
salary = salary*byPersent/100+salary;
}
}
<EmployeeTest.java>
public class EmplyeeTest {public static void main(String[] args){
Employee[] staff = new Employee[3];
staff[0] = new Employee("伯吉",10000,2021,9,15);
staff[1] = new Employee("珂珂",9786,1995,8,13);
staff[2] = new Employee("明明",43463,2000,12,22);
for(Employee item:staff){
staff[0].raiseSalary(5);
}
for(Employee item:staff){
System.out.println(item.getName()+" "+ item.getSalary());
}
}
}
执行结果:
系列内容:
《Java 核心技术 卷1》 笔记:第一章 Java程序设计概述
《Java 核心技术 卷1》 笔记:第二章 Java程序设计环境
《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(1)
《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(2)
《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(3)
《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(4)
《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(5)
《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(6)
《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(7)大数处理、数组、多维数组、控制台传参
《Java 核心技术 卷1》 笔记 第四章:类与对象
喜欢的话,点个赞吧~!平时做题,以及笔记内容将更新到公众号。
关注公众号,互相学习:钰娘娘知识汇总