A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Fangjie 中级黑马   /  2016-6-12 15:13  /  642 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

输入某年某月某日,判断它是这一年的第几天?

7 个回复

倒序浏览
calendar    set方法 然后get方法字段为DAY_OF_YEAR
回复 使用道具 举报
本帖最后由 我是你岁哥❤环 于 2016-6-12 21:58 编辑
  1. <div class="blockcode"><blockquote>
  2. /*
  3.         输入某年某月某日,判断它是这一年的第几天?
  4.        
  5.         思路:
  6.                 1.定义年月日 year, month, day 分别存储输入的年月日
  7.                 2.根据输入的年份year,判断是不是闰年,如果是闰年,2月份是29天,平年是28天
  8.                 3.判断这一年的第几天就是之前所有月份,(month-1)个月里的每个月的天数,循环累加,然后再加上这个day
  9.         判断是不是闰年的两个条件:        1、能被4整除但不能被100整除
  10.                                                                 2、能被400整除
  11. */

  12. import java.util.Scanner;

  13. class Test {

  14.         public static void main(String[] args) {
  15.                
  16.                 Scanner sc = new Scanner(System.in);

  17.                 int year = 0;
  18.                 int month = 0;
  19.                 int day = 0;

  20.                 boolean flag = false;                        //定义标记位,false表示输入日期没有错误
  21.                 int count = 0;
  22.                 int dayOfMonth = 0;

  23.                 do {
  24.                         System.out.println("请输入年份:");
  25.                         year = sc.nextInt();
  26.                
  27.                         System.out.println("请输入月份:");
  28.                         month = sc.nextInt();
  29.                
  30.                         System.out.println("请输入日期:");
  31.                         day = sc.nextInt();

  32.                         //简单验证一下
  33.                         if (year<=0 || month<=0 || month >12 || day<=0 || day>31) {
  34.                                 System.out.println("您输入的日期有误,请重新输入");
  35.                                 flag = true;                                //重新定义标记位,true表示输入日期错误
  36.                         }
  37.                 }
  38.                 while (flag);

  39.                 //(month-1)个月里的每个月的天数,循环累加
  40.                 for (int i=0; i<month; i++) {
  41.                         switch (i) {
  42.                                 case 1:
  43.                                 case 3:
  44.                                 case 5:
  45.                                 case 7:
  46.                                 case 8:
  47.                                 case 10:
  48.                                 case 12:
  49.                                         dayOfMonth = 31;
  50.                                         break;
  51.                                 case 4:
  52.                                 case 6:
  53.                                 case 9:
  54.                                 case 11:
  55.                                         dayOfMonth = 30;
  56.                                         break;
  57.                                 case 2:
  58.                                         if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0 ) {
  59.                                                 dayOfMonth = 29;
  60.                                         } else {
  61.                                                 dayOfMonth = 28;
  62.                                         }
  63.                                         break;
  64.                         }
  65.                         count = count + dayOfMonth;
  66.                 }

  67.                 System.out.println("这是一年中的第 " + (count+day) + " 天");
  68.         }

  69. }
复制代码



回复 使用道具 举报
赞一个
回复 使用道具 举报
大笑哈哈 发表于 2016-6-12 18:34
calendar    set方法 然后get方法字段为DAY_OF_YEAR

谢谢,学习啦!
回复 使用道具 举报

第48行  for (int i=0; i<month; i++) {好像要改成int i=1;i<=month;i++;不然i=0在swith里面找不到相应的月份。
回复 使用道具 举报
看大神的帖,学习复习快
回复 使用道具 举报
好好看  好好学
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马