一个逻辑性问题 关于判断时间断的 我都晕了 谁发明的时间啊~ 高手来看看啊

lysoft 2005-06-17 11:36:29
要判断2个时间段
一个是已经定义好的 比如 2005-7-1 13:00 到 2055-7-1 14:00
另外一个是自己选择的 比如 2005-7-1 1:00 到 2005-7-1 13:30

现在需要判断的是 自己选择的时间段不能和已经定义好的时间有冲突,如果自己选择的时间在已定义的时间段内,就要出现提示信息。

我是用DatePart("h",date)来取时间的小时部分判断的 但是 好像不行 老是出错

StartDate EndDate 自定义时间
StartTime EndTime 已经定义时间

if DatePart("h",EndDate1)>=DatePart("h",Startime) or DatePart("h",StartDate)<=DatePart("h",EndTime) then
response.write ("yes")
response.write("<br>")
else
response.write ("no")
response.write("<br>")
end if

我估计我的逻辑有问题 帮忙看看吧
...全文
107 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ShiningstarHu 2005-06-17
  • 打赏
  • 举报
回复
if DatePart("h",EndDate1)>=DatePart("h",Startime) or DatePart("h",StartDate)<=DatePart("h",EndTime) then 改成

if (DateDiff("n",StartDate,EndTime)>=0) Or (DateDiff("n",EndDate ,StartTime)<=0) then
joeweng 2005-06-17
  • 打赏
  • 举报
回复
应该没有问题吧!

你先把他们输出来看一下,是什么结果.你就可以知道有没有错了
lysoft 2005-06-17
  • 打赏
  • 举报
回复
不过顶过就有参与分 哈哈 谁让系统不能自己给自己分呢、~~ 结贴了~~~~ 哈哈
lysoft 2005-06-17
  • 打赏
  • 举报
回复
回复人: tigeryu(吴越小虎) ( ) 信誉:100 2005-06-17 14:05:00 得分: 0


你的太罗嗦,直接将时间化成long型来比较大小就行了Date的getTime方法可以得到一个long型值的,该值是从某个历史时间算起的一个毫秒级的值


我现在需要用ASP+VBScript实现 我当然知道GetTime()可以 但是ASP测试的时候根本没有状态,必须自己来写测试,如果用VB也就没有这么麻烦了。而且我上面的语句没有问题,不是语句问题,是逻辑判断有问题,这个只是一个简单化的问题,这个问题主要是要解决一个个人日程和公司会议安排之间的关系,而且需要控制权限。不过刚刚已经解决了~~



前面回答的,大概是没有理解我的意思,所以你们的方法没有能够实现我的功能。

下面的是我的,我贴出来

<%
'------------------------------------------------增加记录
'由于原来第一次开发时 只是对日期进行添加日程,并没有对日程和会议进行关联
'这次特别修改+上
table="tbioaPlan" '表名
if request.form("addedit_subed")="true" then
'表单提交后
Title=Request.Form("Title")'标题

StartTime1=Request.Form("start_1")
StartTime2=Request.Form("start_2")
StartTime=StartTime1+":"+StartTime2 '时间
StartDate=Request.Form("StartDate")'开始日期<br>
StartDate=StartDate+" "+StartTime
StartDate1=DatePart("h",StartDate)

endTime1=Request.Form("end_1") '时间
endTime2=Request.Form("end_2")
EndTime=endTime1+":"+endTime2
EndDate=request.Form("EndDate") '结束日期
if EndDate="" then
EndDate=StartDate'结束日期
else
EndDate=EndDate+" "+EndTime
end if
EndDate1=DatePart("h",EndDate)

'判断用户权限 然后搜索相应的会议安排 根据条件显示内容
'---------------------------------
set oConn1=server.createobject("ADODB.connection")
oConn1.ConnectionString ="Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=oa;Data Source=ly;"
oConn1.Open
dim rs1,sql1
set rs1=server.CreateObject("adodb.recordset")
sql1="select DISTINCT m.member as id,m.name as name,m.startime as stime,m.endtime as etime from tbioaMeetingReg m where m.member=" & LoginID
'sql1用来判断该用户是否有会议要参加 然后从会议中选取特定记录来判断当前时间段是否有参加会议
rs1.open sql1,oConn1,1,1
if rs1.eof or rs1.bof then
response.write("<center><br><font color=#820000>")
response.Write("没有会议参加!")
response.write("</font><br></center>")
else
Counts=0
do while not rs1.eof
Startime=DatePart("h",rs1("stime"))
Endtime=DatePart("h",rs1("etime"))
if DatePart("h",Startime)<DatePart("h",StartDate1) or DatePart("h",EndTime)>DatePart("h",EndDate1) then
Counts=Counts+1
else
Counts=Counts+1
end if
rs1.movenext
loop
if Counts<>0 then
response.Write("<br>")
response.Write("<br>")
response.write("<center>")
response.Write "你好,你在 "
response.Write("<font color=#820000>")
response.write StartDate
response.write (" -- ")
response.write EndDate
response.Write("</font>")
response.write(" 有 ")
response.write Counts
response.write (" 条会议要参加!")
response.Write("</center>")
response.Write("<br>")
end if
end if
rs1.close
'---------------------------------
Importance=Request.Form("Importance")'重要程度
Body=Request.Form("Body")'内容
Remark=Request.Form("Remark")'备注

'添加时使用的字段
field1=array("UserID","Title","StartDate","EndDate","Importance","Body","Remark")
value1=array(LoginID,Title,StartDate,EndDate,Importance,Body,Remark)
for i=0 to ubound(field1)
value1(i)=replace(value1(i),"'","''")
next
sql = "INSERT INTO " & table & " (" & Join(field1, ",") & ") VALUES ('" & Join(value1, "','") & "')"
oConn.Execute sql

set rs_id=Server.CreateObject("ADODB.RECORDSET")
rs_id.Open "SELECT MAX(id) AS id FROM " & table,oConn
word="<p>日程信息已成功加入!</p><p><img border=0 src=../images/icon_show.gif align=left width=16 height=16><a href=plan_show.asp?id="&rs_id("id")&">查看该日程</a>"
rs_id.close
end if
'------------------------------------------------
%>
wuyue-tiger 2005-06-17
  • 打赏
  • 举报
回复
你的太罗嗦,直接将时间化成long型来比较大小就行了Date的getTime方法可以得到一个long型值的,该值是从某个历史时间算起的一个毫秒级的值
seraph2 2005-06-17
  • 打赏
  • 举报
回复
if DatePart("h",EndDate1)>=DatePart("h",Startime) or DatePart("h",StartDate)<=DatePart("h",EndTime) then
response.write ("yes")
response.write("<br>")
else
response.write ("no")
response.write("<br>")
end if


如果你上面写的没错的话那应该是你自己把变量写错了EndDate1 这是什么东西啊?不应该是EndDate吗?
lysoft 2005-06-17
  • 打赏
  • 举报
回复
回复人: ShiningstarHu(Shining_star) ( ) 信誉:107 2005-06-17 12:27:00 得分: 0


if DatePart("h",EndDate1)>=DatePart("h",Startime) or DatePart("h",StartDate)<=DatePart("h",EndTime) then 改成

if (DateDiff("n",StartDate,EndTime)>=0) Or (DateDiff("n",EndDate ,StartTime)<=0) then


好像还是不行啊。 请教啊``
antiking 2005-06-17
  • 打赏
  • 举报
回复
if (DateDiff("h",StartDate,EndTime)>=0) Or (DateDiff("h",EndDate ,StartTime)<=0) then

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧