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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© HF_Opticalix 中级黑马   /  2014-6-28 15:08  /  643 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 HF_Opticalix 于 2014-7-2 11:12 编辑

需求 键盘录入时间 并计算是一年中第几天
我没有用SimpleDateFormat  而是通过切割字符串得到年月日 为什么结果总是不对?
  1. import java.util.*;
  2. import java.io.*;
  3. public class Test9 {

  4.         public static void main(String[] args) throws IOException
  5.         {
  6.                 String[] strs = getTimeString();
  7.                 sovleTime(strs);
  8.         }
  9.         public static String[] getTimeString() throws IOException
  10.         {
  11.                 BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
  12.                 String s = null;
  13.                 s=bufr.readLine();
  14.                 String[] strs = s.split("-");
  15.                 return strs;
  16.         }
  17.         public static void sovleTime(String[] strs)
  18.         {
  19.                 Calendar c = Calendar.getInstance();
  20.                 int[] arr = new int[3];
  21.                 for(int x=0; x<3; x++)
  22.                 {
  23.                         arr[x]=Integer.parseInt(strs[x]);
  24.                 }
  25.                 c.set(arr[0],arr[1],arr[2]);
  26.                 System.out.println("是一年中的第"+c.get(Calendar.DAY_OF_YEAR)+"天");//输入2014-1-1 结果是第32天
  27.         }
  28. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

2 个回复

倒序浏览
那是因为Calendar的set方法中的第二个参数int Month是从0开始的,0 表示 January,你输入2014-0-2输出时第2天

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报
001可望成功 发表于 2014-6-28 17:27
那是因为Calendar的set方法中的第二个参数int Month是从0开始的,0 表示 January,你输入2014-0-2输出时第2 ...

:L 忘记了  多谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马