从网页中提取时间的类

做房产网站的垂直搜索,大多数网站的网页都是动态的,所以无法从response里面提取last-modified,而房产网页里面都带有时间,但是格式却不尽相同:有2007-10-01,2007年10月1日等等。所以就写了一个类专门提取时间,并把时间提取之后统一存为2007-01-01的格式。
 1public string GetPubdate()
 2         {
 3             int nDateStart;
 4             String strDate;
 5             StringBuilder stbDate = new StringBuilder();
 6             nDateStart = m_strContent.IndexOf(m_strSitecode[4]);
 7            //nDateStart是时间界定符比如2007-10-01,2007年10月1日其中“-”、“年”、“月”就是时间界定符
 8             if (nDateStart <= 0return null;
 9             strDate = m_strContent.Substring(nDateStart, 17);
10             if (m_strSitecode[5== "")
11             {
12                 nDateStart = strDate.IndexOf(m_strSitecode[5]);
13                 if (nDateStart <= 0return null;
14                 if (strDate.IndexOf(""> 0)    //2006年10月,2006年09月
15                     stbDate.Append(strDate.Substring(strDate.IndexOf(""- 44));
16                 else stbDate.Append("2006"); //year
17                 //stbDate.Append(strDate.Substring(nDateStart - 2, 2));
18                 //stbDate.Append(strDate.Substring(nDateStart + 1, 2));
19
20                 if (true == IsNumeric(strDate.Substring(nDateStart - 21)))    //10月,09月
21                     stbDate.Append(strDate.Substring(nDateStart - 22));
22                 else stbDate.Append("0" + strDate.Substring(nDateStart - 11)); //9月  
23
24                 if (true == IsNumeric(strDate.Substring(nDateStart + 21)))   //10月10日,10月09日
25                     stbDate.Append(strDate.Substring(nDateStart + 12));
26                 else stbDate.Append("0" + strDate.Substring(nDateStart + 11));//10月9日
27             }

28             else if (m_strSitecode[5== "-")
29             {
30                 nDateStart = strDate.IndexOf(m_strSitecode[5]);
31                 if (nDateStart <= 0return null;
32                 //stbDate.Append("2006");
33                 stbDate.Append(strDate.Substring(nDateStart - 44));//year
34                 if (strDate.Substring(nDateStart + 21!= "-")    //2006-10
35                 {
36                     stbDate.Append(strDate.Substring(nDateStart + 12));
37                     if (true == IsNumeric(strDate.Substring(nDateStart + 51)))
38                         stbDate.Append(strDate.Substring(nDateStart + 42));//2006-10-10
39                     else stbDate.Append("0" + strDate.Substring(nDateStart + 41));//2006-10-9
40                 }

41                 else   //2006-9-
42                 {
43                     stbDate.Append("0" + strDate.Substring(nDateStart + 11));
44                     if (true == IsNumeric(strDate.Substring(nDateStart + 41)))
45                         stbDate.Append(strDate.Substring(nDateStart + 32));//2006-9-10
46                     else stbDate.Append("0" + strDate.Substring(nDateStart + 31));//2006-9-9
47                 }

48
49             }

50             //strDate = stbDate.ToString();
51             return stbDate.ToString();
52         }

53
54
posted @ 2007-08-01 13:24  Jadepark  阅读(803)  评论(3编辑  收藏  举报