题解 | #日期换算#
日期换算
https://www.nowcoder.com/practice/08f8a66cb5584268a78ecca2749a2da5
import java.util.Scanner;
import java.util.Calendar;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.*;
import java.text.*;
import java.text.ParseException;
import java.util.Date;
public class Main {
public static void main(String[] args) throws ParseException{
Scanner in = new Scanner(System.in);
Calendar calendar=Calendar.getInstance();
String arr = in.nextLine();
String[] str = arr.split(" ");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
if(str.length==6){
String str0 = String.valueOf(str[0]);
String str1 = String.valueOf(str[1]);
String str2 = String.valueOf(str[2]);
String str3 = String.valueOf(str[3]);
String str4 = String.valueOf(str[4]);
String str5 = String.valueOf(str[5]);
Integer year1 = Integer.parseInt(str0);
Integer month1 = Integer.parseInt(str1);
Integer date1 = Integer.parseInt(str2);
Integer time1 = Integer.parseInt(str3);
Integer min = Integer.parseInt(str4);
Integer sec = Integer.parseInt(str5);
int year2;
int month2;
int date2;
int time2;
int date0;
if(sec>=60){
int count0 = 0;
for(int a=sec;a>60;a-=60){
sec-=60;
count0++;
}
min+=count0;
if(min>=60){
int count1 = 0;
for(int b=min;b>60;b-=60){
min-=60;
count1++;
}
time1+=count1;
if(time1>=24){
int count2 = 0;
for(int c=time1;c>24;c-=24){
time1-=24;
count2++;
}
date1+=count2;
}
}
else{
if(time1>=24){
int count2 = 0;
for(int c=time1;c>24;c-=24){
time1-=24;
count2++;
}
date1+=count2;
}
}
}
else{
if(min>=60){
int count1 = 0;
for(int b=min;b>60;b-=60){
min-=60;
count1++;
}
time1+=count1;
if(time1>=24){
int count2 = 0;
for(int c=time1;c>24;c-=24){
time1-=24;
count2++;
}
date1+=count2;
}
}
else{
if(time1>=24){
int count2 = 0;
for(int c=time1;c>24;c-=24){
time1-=24;
count2++;
}
date1+=count2;
}
}
}
String temp0 = year1 + "-" + month1 + "-" + date1;
Date data = sdf.parse(temp0);
if(time1>=12){
time2 = time1-12;
year2 = year1;
date2 = date1;
month2 = month1;
}
else{
time2 = time1+12;
if(date1>1){
date2 = date1-1;
year2 = year1;
month2 = month1;
}
else{
if(month1>1){
month2 = month1-1;
year2 = year1;
calendar.set(year2,month2,0);
date2 = calendar.getActualMaximum(Calendar.DATE);
}
else{
month2 = month1+11;
year2 = year1-1;
calendar.set(year2,month2,0);
date2 = calendar.getActualMaximum(Calendar.DATE);
}
}
}
String temp = year2 + "-" + month2 + "-" + date2;
Date date = sdf.parse(temp);
System.out.print("北京时间为:"+sdf.format(data.getTime()));
System.out.printf(" %02d:%02d:%02d\n",time1,min,sec);
System.out.print("纽约时间为:"+sdf.format(date.getTime()));
System.out.printf(" %02d:%02d:%02d",time2,min,sec);
}
else{
System.out.println("您输入的数据不合理");
}
}
}
查看12道真题和解析