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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yangqing 中级黑马   /  2013-8-1 19:17  /  1518 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨兴庭 于 2013-8-2 18:57 编辑

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

评分

参与人数 1黑马币 +3 收起 理由
杨兴庭 + 3

查看全部评分

4 个回复

正序浏览
肖博文 发表于 2013-8-1 20:44
文本排版看的不清晰可以看截图。class Demo{
public static void main(String[] args){
  String s = "123 ...

顶一下:) 收入作为学习资料了
回复 使用道具 举报
  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来分割的,感觉也不麻烦的。

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报

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

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, 下载次数: 11)

代码截图

代码截图

评分

参与人数 1技术分 +2 收起 理由
杨兴庭 + 2 很给力!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马