黑马程序员技术交流社区

标题: 关于Calendar类的使用 [打印本页]

作者: HF_Opticalix    时间: 2014-6-28 15:08
标题: 关于Calendar类的使用
本帖最后由 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. }
复制代码

作者: 001可望成功    时间: 2014-6-28 17:27
那是因为Calendar的set方法中的第二个参数int Month是从0开始的,0 表示 January,你输入2014-0-2输出时第2天
作者: HF_Opticalix    时间: 2014-6-28 17:58
001可望成功 发表于 2014-6-28 17:27
那是因为Calendar的set方法中的第二个参数int Month是从0开始的,0 表示 January,你输入2014-0-2输出时第2 ...

:L 忘记了  多谢




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