Foxtable(狐表)用户栏目专家坐堂 → [求助]如何将字符串中表示时间的串转换为日期


  共有5319人关注过本帖树形打印复制链接

主题:[求助]如何将字符串中表示时间的串转换为日期

帅哥哟,离线,有人找我吗?
cqlwsam
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1022 积分:7598 威望:0 精华:0 注册:2010/4/12 12:23:00
[求助]如何将字符串中表示时间的串转换为日期  发帖心情 Post By:2013/12/19 15:56:00 [只看该作者]

如题,如何将下列的字符串中表示时间的串拆分后转换成日期。拼接时行与行间使用了两个换行符,字段间采用分号,而字段名与值间采用冒号。我弄了一下,感觉无从下手。谢谢各位大虾帮我看看。谢谢!


“登记时间:是;入院时间:否;开始时间: 2013/1/1;截止时间: 2013/10/10;患者种类: 预约患者(登记时间);统计项目: 性别.

登记时间:是;入院时间:否;开始时间: 2013/1/1;截止时间: 2013/10/10;患者种类: 住院患者(登记时间);统计项目: 性别.

登记时间:是;入院时间:否;开始时间: 2013/1/1;截止时间: 2013/10/10;患者种类: 失访患者(登记时间);统计项目: 性别.”



 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/12/19 16:10:00 [只看该作者]

Dim str As String =Forms("窗口1").Controls("TextBox1").text
Dim strs As String()=str.Split(vbcrlf)
For Each s As String In strs
  If s <> vbcrlf Then
     Dim ss As String()=s.Split(";")
     For Each s1 As String In ss 
         If s1.Contains("开始时间") OrElse s1.Contains("截止时间")  Then
            Dim d As Date = "#" & s1.Split(":")(1) & "#"
            MessageBox.show(s1 & "    转为为时间格式:" & d)
         End If
     Next
  End If
Next

 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/12/19 16:26:00 [只看该作者]

Dim strs As String
strs + = "登记时间:是;入院时间:否;开始时间: 2013/1/1;截止时间: 2013/10/10;患者种类: 预约患者(登记时间);统计项目: 性别." & vbcrlf & vbcrlf & vbcrlf
strs + = "登记时间:是;入院时间:否;开始时间: 2013/1/1;截止时间: 2013/10/10;患者种类: 住院患者(登记时间);统计项目: 性别." & vbcrlf & vbcrlf & vbcrlf
strs + = "登记时间:是;入院时间:否;开始时间: 2013/1/1;截止时间: 2013/10/10;患者种类: 失访患者(登记时间);统计项目: 性别."
Output.Show(strs)
strs = strs.Replace(vbcr,"")
For Each str As String In strs.Split(vblf)
    For Each s As String In str.Split(";")
        For i As Integer = 0 To s.Split(":").Length - 1
            If IsDate(s.Split(":")(i)) Then
                Output.Show(Format(Cdate(s.Split(":")(i)),"yyyy-MM-dd"))
            End If
        Next
    Next
Next

 回到顶部
帅哥哟,离线,有人找我吗?
cqlwsam
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1022 积分:7598 威望:0 精华:0 注册:2010/4/12 12:23:00
  发帖心情 Post By:2013/12/19 16:28:00 [只看该作者]

我得花时间消化才行。有点难!呵呵!

 回到顶部
帅哥哟,离线,有人找我吗?
cqlwsam
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1022 积分:7598 威望:0 精华:0 注册:2010/4/12 12:23:00
  发帖心情 Post By:2013/12/19 17:09:00 [只看该作者]

能不能转化为这样的格式:“sql * from {基本情况} where 登记时间=true and 入院时间=false and 开始时间=2013-01-01 and 截止时间=2013-10-10 and 患者类型=预约患者(登记时间)”,每一个换行符形成新的sql语句。谢谢!


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/12/19 17:11:00 [只看该作者]

2,3楼可以完美解决你的问题.
我不清楚你是怎么照做的,上个例子看看


 回到顶部
帅哥哟,离线,有人找我吗?
cqlwsam
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1022 积分:7598 威望:0 精华:0 注册:2010/4/12 12:23:00
  发帖心情 Post By:2013/12/19 17:19:00 [只看该作者]

我对这个这样东西搞不懂:
如果字符串中:开始日期:无,我舍弃它不同,如果开始日期:2013-01-01,我就用它。我也用contains。
我是这样写的:
 If txt1>"" AndAlso txt1.contains("开始时间:无") Then
        d1=""
    Else If txt1>"" AndAlso txt1.contains("开始时间:####-##-##") Then
        d1="####-##-##"
    End If
我得意思是:如果开始时间无,d1为空,如果开始时间存在,就取开始时间冒号后面的时间。想用通配符来表示,好像有点问题。


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/12/19 17:22:00 [只看该作者]

没有 ##### 这样的通配.

 If txt1>"" AndAlso txt1.contains("开始时间:无") Then
        d1=""
    Else If txt1>"" AndAlso txt1.contains("开始时间:") Then
        d1="时间"
    End If
[此贴子已经被作者于2013-12-19 17:22:45编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
cqlwsam
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1022 积分:7598 威望:0 精华:0 注册:2010/4/12 12:23:00
  发帖心情 Post By:2013/12/19 17:25:00 [只看该作者]

哦,谢谢!这样应该得行了。我试试!

 回到顶部
帅哥哟,离线,有人找我吗?
cqlwsam
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1022 积分:7598 威望:0 精华:0 注册:2010/4/12 12:23:00
  发帖心情 Post By:2013/12/20 14:27:00 [只看该作者]

按bin及lsy的思路已经搞定。但有一个问题, 如:登记时间:是;入院时间:否;开始时间: 2013/1/1;截止时间: 2013/10/10;患者种类: 预约患者(登记时间);统计项目: 性别.
登记时间:是;入院时间:否;开始时间: 2013/1/1;截止时间: 2013/10/10;患者种类: 住院患者(登记时间);统计项目: 性别.登记时间:是;入院时间:否;开始时间: 2013/1/1;截止时间: 2013/10/10;患者种类: 失访患者(登记时间);统计项目: 性别.”。

按道理,通过分组统计将形成三个统计表,我想将此嵌入拆开的语句中,统计表用“统计表n”来表示,由1开始,每循环一次,添加1,直到完成循环。然后跳出循环,进行统计表的合并。如何写。如果是固定的组合固定的表我会做,但这种带有循环,表个数不定的我不会弄。点点思路。谢谢!


 回到顶部
总数 18 1 2 下一页