题解 | #日期换算#

日期换算

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的题解 文章被收录于专栏

牛客题解

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

相关推荐

Noob1024:一笔传三代,人走笔还在
点赞 评论 收藏
分享
勤奋努力的椰子这就开摆:美团骑手在美团工作没毛病
投递美团等公司10个岗位
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务