题解 | #日期换算#

日期换算

http://www.nowcoder.com/practice/08f8a66cb5584268a78ecca2749a2da5

题意整理。

  • 输入任意一个年份,输出该年内各个月份的天数。

方法一(字符串分割)

1.解题思路

  • 首先通过字符串分割得到具体的年、月、日、时、分、秒。
  • 将日期调整成"yyyy-MM-dd HH:mm:ss"的格式,并进行解析。
  • 输出北京时间和纽约时间,计算纽约时间时,在北京时间的基础上减去12小时。

图解展示: alt

2.代码实现

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Scanner in = new Scanner(System.in);
        String str1 = in.nextLine();

        //将输入的日期用空格分割成字符串数组
        String[] arr=str1.split(" ");
        //如果不是6位长度,则输入不正常
        if(arr.length!=6){
            System.out.println("您输入的数据不合理");
        }
        else{
            //将日期调整成"yyyy-MM-dd HH:mm:ss"的格式
            String str=arr[0]+"-"+arr[1]+"-"+arr[2]+" "+arr[3]+":"+arr[4]+":"+arr[5];
            //解析日期
            Date date=sdf.parse(str);
            //输出北京时间
            System.out.println("北京时间为:"+sdf.format(date.getTime()));
            //输出纽约时间
            System.out.println("纽约时间为:"+sdf.format(date.getTime()-(long)12*60*60*1000));
        }

    }
}

3.复杂度分析

  • 时间复杂度:由于分割的字符串为固定的常数长度,所以时间复杂度为O(1)O(1)
  • 空间复杂度:需要额外常数级别的空间,所以空间复杂度为O(1)O(1)
xqxls的题解 文章被收录于专栏

牛客题解

全部评论
就是12个小时转化为毫秒单位,1hour=60minutes,1minute=60seconds,1second=1000milliseconds
点赞 回复 分享
发布于 2022-01-28 00:18
最后一行代码不太懂,能不能注释一下,(long)12*60*60*1000)
点赞 回复 分享
发布于 2022-01-27 21:47

相关推荐

06-25 09:33
厦门大学 Java
程序员饺子:现在日常估计没啥hc了,等到八月多估计就慢慢有了。双九✌🏻不用焦虑的
投递快手等公司7个岗位
点赞 评论 收藏
分享
头顶尖尖的程序员:我是26届的不太懂,25届不应该是找的正式工作吗?为什么还在找实习?大四还实习的话是为了能转正的的岗位吗
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-11 15:08
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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