黑马程序员技术交流社区

标题: 日期格式调取 [打印本页]

作者: yangqing    时间: 2013-8-1 19:17
标题: 日期格式调取
本帖最后由 杨兴庭 于 2013-8-2 18:57 编辑

自定义了一个日期格式yyyy-MM-dd;
怎么样将其年,月,日封装成对象调用用来运算。

作者: 肖博文    时间: 2013-8-1 20:44

文本排版看的不清晰可以看截图。

class Demo{
public static void main(String[] args){
  String s = "1234-56-56";
  
  //利用正则表达式判断字符串格式是否合法。
  boolean decide = s.matches("[0-9]{4}[-][0-9]{2}[-][0-9]{2}");
  if(decide){
   
   /*
    * 将格式合法的s按照“-”分割,将得到的三个字符串存到ss字符串数组中。
    * (1)第一个字符串(即ss[0]),存储的就是年的字符串形式。
    * (2)第二个字符串(即ss[1]),存储的就是月的字符串形式。
    * (3)第三个字符串(即ss[2]),存储的就是日的字符串形式。
    */
   String[] ss = s.split("-");
   
   //获取年、月、日的Integer对象。具体描述请看API文档。
   Integer year = new Integer(ss[0]);
   Integer moth = new Integer(ss[1]);
   Integer day = new Integer(ss[2]);
   
   /*
    * 判断年月日是否在指定的范围内。
    * (1)年的范围,暂时定为(1900 ,2100)。
    * (2)月的范围,只能在1到12之间。
    * (3)日的范围,只能在1到31之间。
    * (4)且还要判断特殊的年,2月份的天数。这里就不一一判断了。
    */
   decide = (year >1900 && year < 2100 )
     && (moth > 0 && moth <= 12)
     && (day > 0 && day <= 31);
   if(decide){
    /*
     * 此时得到的year、moth、day才是符合现实生活的。
     * 而且已经封装成了对象,可以方便计算。
     * (1)为了保证程序有意义,必须进行以上的判断。
     * (2)不要嫌这些步骤繁琐,它会让你的程序更有意义。
     * (3)该怎么完善代码,就看你了。
     */
   }
  }
}
}


001.JPG (67.02 KB, 下载次数: 10)

代码截图

代码截图

作者: 草帽    时间: 2013-8-1 21:28
  1. String st = "2013-08-01"

  2. String[] result = st.split("-");  
  3.       
  4. int[] date = new int[result.length];  
  5.         
  6. for (int i=0;i<result.length;i++) {
  7.         date[i] = Integer.parseInt(result[i]);
  8. }

  9. Calendar c = Calendar.getInstance();

  10. c.set(date[0],date[1]-1,date[2]);
复制代码
这里我封装成了一个Calendar对象,这样楼主就可以对日期进行更多的操作了。

当然,这里也可以用正则表达式来进行分割(去除“—”)我这里应用split来分割的,感觉也不麻烦的。
作者: 黑马李昂    时间: 2013-8-2 21:32
肖博文 发表于 2013-8-1 20:44
文本排版看的不清晰可以看截图。class Demo{
public static void main(String[] args){
  String s = "123 ...

顶一下:) 收入作为学习资料了




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