题解 | #日期换算#

日期换算

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("您输入的数据不合理");
        }
    }
}
全部评论

相关推荐

02-04 17:01
南昌大学 Java
牛客96763241...:拿插件直接投就完了,这玩意看运气的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务