1、使用Date输出当前系统时间,以及3天后这一刻的时间
import java.util.Calendar;
import java.util.Date;
public class Demo01 {
public static void main(String[] args) {
//1、使用Date输出当前系统时间,以及3天后这一刻的时间
Calendar cal=Calendar.getInstance();
Date date=new Date();
System.out.println(date);
cal.setTime(date);
cal.add(Calendar.DAY_OF_MONTH, 3);
Date date1=cal.getTime();
System.out.println(date1);
}
}
2、将当前系统时间以"yyyy-MM-dd HH:mm:ss"格式输出
import java.text.SimpleDateFormat;
import java.util.Date;
public class Demo02 {
public static void main(String[] args) {
//2、将当前系统时间以"yyyy-MM-dd HH:mm:ss"格式输出
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date=new Date();
String date1=null;
date1=sdf.format(date);
System.out.println(date1);
}
}
3、输入某人生日,格式为"yyyy-MM-dd",输出到现在为止经过了多少周从控制台输入年月日,计算你活了多少天
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class Demo03 {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
SimpleDateFormat sd=new SimpleDateFormat("yyyy-MM-dd");
//3、输入某人生日,格式为"yyyy-MM-dd",输出到现在为止经过了多少周
//从控制台输入年月日,计算你活了多少天
Date date=new Date();
Date date3 = null;
System.out.println("请输入你的年月日:");
String str3=scan.next();
try {
date3=sd.parse(str3);
System.out.println(date3);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
long l=date.getTime();
System.out.println(l);
long l2=date3.getTime();
System.out.println(l2);
long l3=l-l2;
System.out.println(l3);
long l4=l3/1000/60/60/24;
System.out.println("活了"+l4+"天");
System.out.println("活了"+l4/7+"周");
}
}
4、输入一个生产日期格式"yyyy-MM-dd",再输入一个数字(保质期的天数)。然后经过计算输出促销日期,促销日期为:该商品过期日前2周的周三
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
public class Demo04 {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
/*4、输入一个生产日期格式"yyyy-MM-dd",再输入一个数字(保质期的天数)。然后经过计算输出促销日期,
促销日期为:该商品过期日前2周的周三*/
//从控制台输入一个生产日期及保质期,求过期日期
Calendar cal=Calendar.getInstance();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
System.out.println("请输入一个生产期日期");
String str=scan.next();
System.out.println("请输入保质期:");
int month=scan.nextInt();
Date date1=null;
try {
date1=sdf.parse(str);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
cal.setTime(date1);
cal.add(Calendar.MONTH, month);
Date date2=cal.getTime();
System.out.println(date2);
//过期日期
String str1=sdf.format(date2);
System.out.println("过期日期为:"+str1);
cal.setTime(date2);
cal.add(Calendar.DAY_OF_MONTH, -11);
Date date3=cal.getTime();
String str2=sdf.format(date3);
System.out.println("促销日期为:"+str2);
}
}
5、实现时间的计算: 要求用户输入身份证号,若格式有误,要求其重新输入。然后根据身份证号码输出20岁生日所在周的周三的日期。
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
public class Demo05 {
static Scanner scan=new Scanner(System.in);
public static void main(String[] args) {
/*5、实现时间的计算: 要求用户输入身份证号,若格式有误,要求其重新输入。
然后根据身份证号码输出20岁生日所在周的周三的日期。*/
medthod1();
}
public static void medthod1(){
try{
medthod();
}catch(IntException e1){
System.out.println("身份正不合法");
e1.printStackTrace();
}
medthod2();
}
//然后根据身份证号码输出20岁生日所在周的周三的日期。
public static void medthod2(){
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
Calendar cal=Calendar.getInstance();
System.out.println("请重新输入身份证号:");
String str1=scan.next();
String str2 = str1.substring(6, 10);
String str3=str1.substring(10, 12);
String str4=str1.substring(12, 14);
String str5="-";
String str6=str2+str5+str3+str5+str4;
System.out.println(str2);
System.out.println(str3);
System.out.println(str4);
System.out.println(str6);
Date date1=null;
try {
date1=sdf.parse(str6);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(date1);
cal.setTime(date1);
cal.add(Calendar.YEAR, 20);
Date date3=cal.getTime();
String str7=sdf.format(date3);
System.out.println(str7);
int a=cal.get(Calendar.DAY_OF_WEEK);
System.out.println(a);
if(a>4){
int b=a-4;
cal.add(Calendar.DAY_OF_MONTH, -b);
}else if(a<4){
int c=4-a;
cal.add(Calendar.DAY_OF_MONTH, c);
}
Date date4=cal.getTime();
String str8=sdf.format(date4);
System.out.println(str8);
}
public static void medthod() throws IntException{
String id="^[1-9]\\d{5}(1|2)\\d{3}(0|1)\\d{1}(0|1|2|3)\\d\\d{3}(\\d|X)$";
System.out.println("请输入一个身份证号:");
String str=scan.next();
if(str.matches(id)){
}else{
IntException i=new IntException("身份正无效");
throw i;
}
}
}
class IntException extends Exception{
public IntException() {
super();
// TODO Auto-generated constructor stub
}
public IntException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
super(message, cause, enableSuppression, writableStackTrace);
// TODO Auto-generated constructor stub
}
public IntException(String message, Throwable cause) {
super(message, cause);
// TODO Auto-generated constructor stub
}
public IntException(String message) {
super(message);
// TODO Auto-generated constructor stub
}
public IntException(Throwable cause) {
super(cause);
// TODO Auto-generated constructor stub
}
}
6、定义私有属性:
String name;
int age;
String gender;
int salary;
Date hiredate;//入职时间
定义构造方法,以及属性get,set方法.
定义toString方法,格式如:姓名:张三,年龄:25,性别:男,薪资:5000,入职时间:2006-02-15
定义equals方法,要求只要名字相同,则认为内容一致
public class Demo07 {
public static void main(String[] args) {
Person p=new Person();
Person p1=new Person();
p.setName("小王");
p.setAge(21);
p.setGender("女");
p.setSalary(5000);
p.setHireedates("2021-08-15");
p1.setName("小王");
p1.setAge(21);
p1.setGender("女");
p1.setSalary(5000);
p1.setHireedates("2021-08-15");
System.out.println(p);
System.out.println(p1);
if(p.equals(p1)){
System.out.println("内容一致");
}else{
System.out.println("内容不一致");
}
}
}
class Person{
private String name;
private int age;
private String gender;
private int salary;
private String hireedates;
public Person() {
super();
}
public Person(String name, int age, String gender, int salary, String hireedates) {
super();
this.name = name;
this.age = age;
this.gender = gender;
this.salary = salary;
this.hireedates = hireedates;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public int getSalary() {
return salary;
}
public void setSalary(int salary) {
this.salary = salary;
}
public String getHireedates() {
return hireedates;
}
public void setHireedates(String hireedates) {
this.hireedates = hireedates;
}
@Override
public String toString() {
return "Person [姓名=" + name + ", 年龄=" + age + ", 性别=" + gender + ", 薪资=" + salary + ", 入职时间="
+ hireedates + "]";
}
public boolean equals(Object obj){
if(this==obj){
return true;
}
if(getClass()!=obj.getClass()){
return false;
}
if(obj instanceof Person){
Person p=(Person)obj;
if(p.getName().equals(this.name)){
return true;
}
}
return false;
}
}
7、创建一个集合c1,存放元素"one",“two”,“three”
再创建一个集合c2,存放元素"four","five","six"
然后将c2元素全部存入c1集合
然后在创建集合c3,存放元素"one,five"
然后输出集合c1是否包含集合c3的所有元素
然后将c1集合中的"two"删除后再输出c1集合
import java.util.ArrayList;
import java.util.Arrays;
public class Demo09 {
public static void main(String[] args) {
medthod1();
}
public static void medthod1(){
ArrayList<String> c1 = new ArrayList<String>();
ArrayList<String> c2 = new ArrayList<String>();
ArrayList<String> c3 = new ArrayList<String>();
c1.add("one");
c1.add("two");
c1.add("three");
c2.add("four");
c2.add("five");
c2.add("six");
c3.add("one");
c3.add("four");
// 然后将c2元素全部存入c1集合
c1.addAll(c2);
for (String c : c1) {
System.out.print(c+"\t");
}
System.out.println();
// 然后输出集合c1是否包含集合c3的所有元素
boolean flag=c1.containsAll(c3);
System.out.println(flag);
//然后将c1集合中的"two"删除后再输出c1集合
c1.remove("two");
for (String c : c1) {
System.out.print(c+"\t");
}
}
}
8、创建一个List集合(ArrayList,LinkedList均可)
存放元素"one","two","three","four"。
获取集合第二个元素并输出。
将集合第三个元素设置为"3"
在集合第二个位置上插入元素"2"
删除集合第三个元素。
这题我用了数组和集合两种方法
import java.util.ArrayList;
import java.util.Arrays;
public class Demo11 {
public static void main(String[] args) {
medthod();
System.out.println();
medthod1();
}
public static void medthod(){
String [] arr={"one","two","three","four"};
//获取集合第二个元素并输出。
System.out.println(arr[1]);
//将集合第三个元素设置为"3"
arr[2]="3";
for(String a:arr){
System.out.print(a+"\t");
}
System.out.println();
//在集合第二个位置上插入元素"2"
arr=Arrays.copyOf(arr, arr.length+1);
System.arraycopy(arr, 1, arr, 2, 3);
arr[1]="2";
for(String a:arr){
System.out.print(a+"\t");
}
System.out.println();
// 删除集合第三个元素
System.arraycopy(arr, 3, arr, 2, 2);
arr=Arrays.copyOf(arr, arr.length-1);
for(String a:arr){
System.out.print(a+"\t");
}
}
public static void medthod1(){
ArrayList<String> list = new ArrayList<String>();
list.add("one");
list.add("two");
list.add("three");
list.add("four");
//获取集合第二个元素并输出。
String l = list.get(1);
System.out.println(l);
//将集合第三个元素设置为"3"
list.set(2, "3");
for(String l1:list){
System.out.print(l1+"\t");
}
System.out.println();
//在集合第二个位置上插入元素"2"
list.add(1, "2");
for(String l1:list){
System.out.print(l1+"\t");
}
System.out.println();
// 删除集合第三个元素
list.remove(2);
for(String l1:list){
System.out.print(l1+"\t");
}
}
}
9、创建一个List集合并添加元素0-9
然后获取子集[3,4,5,6]
然后将子集元素扩大10倍
然后输出原集合。
之后删除集合中的[7,8,9]
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Demo12 {
public static void main(String[] args) {
medthod1();
}
public static void medthod1(){
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(0);
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
list.add(6);
list.add(7);
list.add(8);
list.add(9);
for(int l:list){
System.out.print(l+"\t");
}
System.out.println();
// 然后获取子集[3,4,5,6]
List<Integer> arr = list.subList(3, 7);
for(int l:arr){
System.out.print(l+"\t");
}
System.out.println();
// 然后将子集元素扩大10倍, 然后输出原集合。
for(int i=0;i<arr.size();i++){
arr.set(i, arr.get(i) * 10);
}
for(int l:arr){
System.out.print(l+"\t");
}
System.out.println();
for(int l:list){
System.out.print(l+"\t");
}
System.out.println();
// 之后删除集合中的[7,8,9]
list.subList(7, 10).clear();
for(int l:list){
System.out.print(l+"\t");
}
}
}
10、通过控制台输入3个日期(yyyy-MM-dd格式),然后转换为Date对象后存入集合,然后对该集合排序后输出所有日期
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Scanner;
public class Demo16 {
static Scanner scan=new Scanner(System.in);
public static void main(String[] args) {
medthod1();
}
public static void medthod1(){
ArrayList<Date> list = new ArrayList<Date>();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
System.out.println("请输入第一个日期:");
String str1=scan.next();
System.out.println("请输入第二个日期:");
String str2=scan.next();
System.out.println("请输入第三个日期:");
String str3=scan.next();
Date date1=null;
Date date2=null;
Date date3=null;
try {
date1=sdf.parse(str1);
date2=sdf.parse(str2);
date3=sdf.parse(str3);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
list.add(date1);
list.add(date2);
list.add(date3);
list.sort(null);
System.out.println(list);
}
}
学习java就是要坚持每天写代码,加油!