hdu1201 java
题意:
求某人从出生到18岁生日所经过的天数。如果这个人没有18岁生日,就输出-1。
思路:
通过毫秒值计算天数。
利用:来自https://www.cnblogs.com/xiohao/p/5294412.html
Date fDate=sdf.parse("2015-12-31"); Date oDate=sdf.parse("2016-01-01"); long days=(oDate.getTime()-fDate.getTime())/(1000*3600*24); //注意:如果时间为:2016-03-18 11:59:59 和 2016-03-19 00:00:01的话差值为 0
还有一种求天数差的方法方法:
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); Date fDate=sdf.parse("2015-12-31"); Date oDate=sdf.parse("2016-01-01"); Calendar aCalendar = Calendar.getInstance(); aCalendar.setTime(fDate); int day1 = aCalendar.get(Calendar.DAY_OF_YEAR); aCalendar.setTime(oDate); int day2 = aCalendar.get(Calendar.DAY_OF_YEAR); int days=day2-day1; /*在不涉及到跨年的情况,此种方法是没问题的 * 但是设计跨年的情况,此种方法回出问题的哦 * * 如果时间为:2016-03-18 11:59:59 和 2016-03-19 00:00:01的话差值为 1 */
1 import java.text.ParseException; 2 import java.text.SimpleDateFormat; 3 import java.util.Date; 4 import java.util.Scanner; 5 6 public class Main{ 7 8 public static void main(String[] args) throws ParseException { 9 Scanner scanner=new Scanner(System.in); 10 SimpleDateFormat fm=new SimpleDateFormat("yyyy-MM-dd"); 11 int n=scanner.nextInt(); 12 while(n-->0) 13 { 14 String bir=scanner.next(); 15 String yearStr=bir.substring(0,4); 16 String monthStr=bir.substring(5,7); 17 String dayStr=bir.substring(8, 10); 18 int month=Integer.parseInt(monthStr); 19 int day=Integer.parseInt(dayStr); 20 21 int year=Integer.parseInt(yearStr); 22 int after=year+18; 23 if(year%4==0||(year%100!=0&&year%400==0))//出生是闰年2.29 24 {//18岁不是闰年,就没有2.29 25 if(month==2&&day==29&&!(after%4==0||(after%100!=0&&after%400==0))) 26 { 27 System.out.println("-1"); 28 continue; 29 } 30 } 31 32 Date bird=fm.parse(bir); 33 String ehString=String.valueOf(after); 34 ehString+="-"; 35 ehString+=String.valueOf(month); 36 ehString+="-"; 37 ehString+=String.valueOf(day); 38 Date eighteen=fm.parse(ehString); 39 40 long res=(eighteen.getTime()-bird.getTime())/(1000*3600*24); 41 System.out.println(res); 42 43 } 44 } 45 46 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步