黑马程序员技术交流社区

标题: 发现一道不错的题(贴内附有答案) [打印本页]

作者: lizhao    时间: 2016-7-29 22:13
标题: 发现一道不错的题(贴内附有答案)
题目:输入某年某月某日,判断这一天是这一年的第几天?
程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。
import java.util.Scanner;
public class Prog14{
        public static void main(String[] args){
                Scanner scan = new Scanner(System.in).useDelimiter("\\D");//匹配非数字
                System.out.print("请输入当前日期(年-月-日):");
                int year = scan.nextInt();
                int month = scan.nextInt();
                int date = scan.nextInt();
                scan.close();
                System.out.println("今天是"+year+"年的第"+analysis(year,month,date)+"天");
        }
        //判断天数
        private static int analysis(int year, int month, int date){
                int n = 0;
                int[] month_date = new int[] {0,31,28,31,30,31,30,31,31,30,31,30};
                if((year%400)==0 || ((year%4)==0)&&((year%100)!=0))
                  month_date[2] = 29;
                for(int i=0;i<month;i++)
                  n += month_date[i];
                return n+date;
        }

作者: zhangjiesss    时间: 2016-7-30 08:33
赞一个,,加油
作者: xyy123456    时间: 2016-7-30 09:55
运行试试看
作者: Loki_M    时间: 2016-7-30 10:05
加油吧!!!!!!!!!!!!
作者: Bemooy    时间: 2016-7-30 11:43
不错 加油
作者: 崇尚技术的菜鸟    时间: 2016-7-30 12:21
手机党只有先截屏再敲到电脑上,如果手机也能开发java,那酸爽
作者: lovebaby    时间: 2016-7-30 16:12
哎呦,不错哦
作者: 淋雨一直走    时间: 2016-8-1 16:29
scan.close()是必须的嘛???
作者: 淋雨一直走    时间: 2016-8-1 16:59
淋雨一直走 发表于 2016-8-1 16:29
scan.close()是必须的嘛???

好像只能输数字,输字母会报错
作者: 肥猫外传    时间: 2016-8-1 22:19
不错,学习了
作者: 花陌相惜    时间: 2016-8-1 22:32
还可以 小伙子
作者: 骚动的石头    时间: 2016-8-1 22:37
可以可以
作者: itcoder    时间: 2016-8-2 01:02
不错不错,赞一个!
作者: 18072727834    时间: 2016-8-3 20:14
6666666666666   well done!
作者: 小面团    时间: 2016-8-3 20:25
66666666666666
作者: ゞPromiseYou    时间: 2016-8-3 20:32
赞一个,,加油
作者: xueyezhishi    时间: 2016-8-3 21:15
挺好的,不错




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2