考虑了一堆边界条件的慢代码

计算日期到天数转换

http://www.nowcoder.com/questionTerminal/769d45d455fe40b385ba32f97e7bcded

本题目按道理来说应该是简单的。纯粹边界条件的考虑。
但是做完提交以后,看题解的时候发现大家简单的处理了一下闰年与否就能提交了。。。
好吧是我考虑过多了。把我的劣质代码贴一下

import java.io.BufferedInputStream;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(new BufferedInputStream(System.in));
        while(sc.hasNext()){
            int year = sc.nextInt();
            int month = sc.nextInt();
            int[] days = new int[]{31,28,31,30,31,30,31,31,30,31,30,31};
            int day = sc.nextInt();
            int ans = 0;
            //计算闰年
            boolean leapYear = false;
            if((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
                leapYear = true;

            //通用的计算天数
            for(int i=0; i<month-1; i++){
                ans += days[i];
            }
            ans += day;

            //特殊情况处理
            //闰年,且大于2.29
            if(leapYear && month >= 3){
                ans += 1;
            }
            //年份错误
            if(year < 1)
                ans = -1;
            //月份错误
            if(month < 0 || month > 12)
                ans = -1;
            //闰年,2月日期大于29或小于0
            if(leapYear && month == 2 && (day < 0 || day > 29))
                ans = -1;
            //闰年,普通月份日期出错
            if(leapYear && month != 2 && (day < 0 || day > days[month-1]))
                ans = -1;
            //平年,日期错误
            if(!leapYear && (day < 0 || day > days[month-1]) )
                ans = -1;

            System.out.println(ans);
        }
        sc.close();
    }
}
全部评论

相关推荐

01-12 14:08
门头沟学院 Java
有寒假来武汉小米总部实习的大学生嘛,我也是小米的员工,想找合租舍友,仅限女生可免租半月,二月初可入住,也就是说房租是2.15开始算的哦~也可以将行李提前放过来~房屋介绍:1、房子情况:有电梯;租的是三室一厅一卫一厨,&nbsp;但是有个卧室比较小,不打算找人,只住两个人就可以了;衣柜也很大,可以放下很多衣服;房屋采光真的很好,早上起来可以在床上晒太阳的那种,十分惬意(夏季晚上十分好看!)2.&nbsp;楼下离我们很近的地方有小吃街和一个两层大超市(大概步行两分钟多就可以走到)&nbsp;,还有一个新开的麦当劳,晚上可以去吃小吃,购买物资也可以去大超市;3.&nbsp;房子基本设施齐备(洗衣机,冰箱,空调,油烟机,热水器);4.&nbsp;我有稳定的工作,生活中很注意卫生,周末有时间会自己做饭,可以投喂哦~5.&nbsp;出行:距离公交站步行10分钟不到,距政务中心,武汉小米总部三站(晚上我都是走回来的,很近的~);一个比较进的地铁,距离大概1km左右;出入我觉得很方便;6.&nbsp;房租:1150每月,押一付二,无物业费,也没有中介费和其他额外费用。7.&nbsp;民用水电燃气,用多少交多少,水电费正常平摊。希望你是:1.&nbsp;女生(本人女),不带异性回家,如有同性朋友来玩,最多过夜一晚;2.&nbsp;爱干净,讲卫生,作息正常,不吵闹,有稳定工作;3.&nbsp;好沟通,有任何问题一定要沟通,不要闷着!中介勿扰,非诚勿扰!!!希望不要浪费彼此的时间诚心有意向的可以联系我看房
租房找室友
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

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