设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: boy1
打印 上一主题 下一主题

[窗体] 求助日期计算器代码

[复制链接]
11#
发表于 2009-1-16 14:09:21 | 只看该作者
原帖由 boy1 于 2009-1-16 14:02 发表
已搞定[:50] 谢谢各位
If Not IsNull(Me.时间开始) And Not IsNull(Me.时间截止) Then
    str1 = DateDiff("m", Me.时间开始, Me.时间截止) - IIf(Day(Me.时间开始) - Day(Me.时间截止) >= 0, 1, 0)
  End If
I ...


好复杂的算式,呵呵。
12#
发表于 2009-1-16 14:30:19 | 只看该作者
我也遇到这个问题谢谢版主分享
13#
发表于 2009-1-16 20:08:37 | 只看该作者
由此想到了一个小学的奥赛题,说是兄弟三人分遗产,各得1/2、1/3、1/8,遗产为23匹马,你怎么分?呵呵
分别分得 12,8,3
14#
发表于 2009-1-17 07:13:02 | 只看该作者
10楼的还不是很理想,举个例子
如果08-06-01-------08-07-01,按10楼的代码,会得到31天,当然就天数来说并没有错。
但是您的要求应该是显示1个月零1天吧。
15#
 楼主| 发表于 2009-1-17 19:22:02 | 只看该作者
原帖由 Henry D. Sy 于 2009-1-17 07:13 发表
10楼的还不是很理想,举个例子
如果08-06-01-------08-07-01,按10楼的代码,会得到31天,当然就天数来说并没有错。
但是您的要求应该是显示1个月零1天吧。


版主就是版主,果然火眼金睛。是有这个不足。求更好的办法。[:50]
16#
发表于 2009-1-20 07:33:40 | 只看该作者
晕,把这贴搞忘了
17#
发表于 2009-1-20 07:34:05 | 只看该作者
没测试,您自己测试一下看看。

Private Sub Command248_Click()
    Dim strTemp As String
    strTemp = getMD(Me.时间开始, Me.时间截止)
    Me.月个数 = Val(strTemp)
    Me.零天数 = Mid(strTemp, InStr(strTemp, "@") + 1)
End Sub

Function getMD(sDate As Date, eDate As Date) As String
    Dim Ms As Integer, Ds As Integer
    Dim sD As Integer, eD As Integer

    sD = Day(sDate)
    eD = Day(eDate)
    Ds = eD - sD
    Ms = DateDiff("m", sDate, eDate)
    If Ds < -1 Then
        Ms = Ms - 1
        Ds = DateDiff("d", DateAdd("m", Ms, sDate), eDate)
    End If
    getMD = Ms & "@" & Ds + 1
End Function
18#
 楼主| 发表于 2009-1-20 13:03:37 | 只看该作者

先谢谢版主

先谢谢版主
19#
发表于 2009-2-5 10:15:28 | 只看该作者
ddddddddd

评分

参与人数 1经验 -10 收起 理由
Henry D. Sy -10 恶意灌水

查看全部评分

20#
发表于 2012-3-20 12:32:33 | 只看该作者
碰到2月份的时候有点误差。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-6-16 16:31 , Processed in 0.104800 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表