Date算法题

问题一:将字符串“2000-02-16”转化为java.sql.Date
问题二:三天打鱼两天晒网,1990-01-01开始,打鱼?晒网

问题一:

1
2
3
4
5
6
7
8
9
10
11
12
13
@Test
public void test() throws ParseException {
String birth = "2000-02-16";
SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd");

//将字符串转化为java.until.Date类的对象,处理异常
Date date = sdf.parse(birth);
System.out.println(date);//Sun Dec 26 00:00:00 CST 1999

//将java.until.Date的对象变成java.sql.Date
java.sql.Date birthday = new java.sql.Date(date.getTime());
System.out.println(birthday);//1999-12-26
}

问题二:
举例:2020-09-08 总天数?
总天数%5 == 1,2,3 打鱼
总天数%5 == 4,0 晒网

  • 方式一:换算为毫秒数,除不尽的时候要加上1。(date2.getTime() - date1.getTime())/(10006060*24) + 1
  • 方式二:1990-01-01–>2019-12-31 + 2020-01-01 —> 2020-09-08
    方式二可以使用Calendar的get方法获取这个月的第几天
    或者使用C语言解决