Foxtable(狐表)用户栏目专家坐堂 → 日期的问题


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

主题:日期的问题

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57584 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/8/1 9:39:00 [只看该作者]

对了,我没有想到的,动了很多脑筋.

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57584 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/8/2 13:56:00 [只看该作者]

搞死人的银行日期分配,根据老大你代码:

Dim n1,n2 As Integer
Dim d1,d2,d As Date
d1 =#4/30/2011#
d2=#6/2/2011#
n1=datediff("m",d1,d2)
d = d1.AddMonths(n1)
n1= n1 - iif(d2<d,1,0)
Output.Show("月数:" & n1) 
output.show("多余天数:" & (d2 - d1.AddMonths(n1)).Totaldays)

按照你的代码得出的结果是1个月零3天,但是由于银行的日期计算与众不同,他们的时间应该这样的:
   时段是0430到0602         分成0430-0531为一个月   然后是0531-0601 两天   0602是不算的.
怎么写?
        



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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57584 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/8/2 14:15:00 [只看该作者]

举个例子:
4.29-6.02

开始的时间如果是4.29,不是月底.那么结束的日期就是5.29,    然后余数就是 5.29,5.30,5.31,6.01  4天

4.30-0602

开始的时间如果是4.30,就是月底 ,那么结束的日期就是5.31   然后余数就是5.31,6.01  两天

原则上:

规则就是:月底对月底,日对日,算头不算尾。
算头不算尾贯穿在整个计算过程中


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/8/2 14:28:00 [只看该作者]

Dim n1 As  Integer
Dim d1,d2,d As Date
Dim last1 As Boolean
Dim last2 As Boolean
d1 =#4/30/2011#
d2=#6/2/2011#
last1 = (d1.day = Date.DaysInMonth(d1.year,d1.month))
last2 = (d2.day = Date.DaysInMonth(d2.year,d2.month))
n1 = datediff("m",d1,d2)
If last1 And last2 Then
    d =d1.addmonths(n1)
ElseIf last1 And last2 = False Then
    n1= n1-1
    d =d1.addmonths(n1)
    d = new Date(d.year,d.month,Date.DaysInMonth(d.year,d.month))
ElseIf d1.AddMonths(n1) > d2 Then
    n1 = n1-1
   d =d1.addmonths(n1)
End If
Output.Show("月数:" & n1)
output.show("多余天数:" & (d2 - d).Totaldays)

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57584 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/8/2 15:52:00 [只看该作者]

2012-4-28 2012-6-28 
2012-4-1         2012-5-31   这种时间段出来的是7万多天

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


加好友 发短信
等级:等待验证 帖子:386 积分:2482 威望:0 精华:1 注册:2011/5/10 11:13:00
  发帖心情 Post By:2011/8/2 16:49:00 [只看该作者]

Dim n1,n2 As Integer
Dim d1,d2,d As Date
d1 =#4/29/2011#
d2=#6/2/2011#
n1=datediff("m",d1,d2)
d = d1.AddMonths(n1)
n1= n1 - iif(d2<d,1,0)

d = d1.AddMonths(n1)
If d1.day = Date.DaysInMonth(d1.year,d1.month) Then
d = New Date(d.year,d.month, Date.DaysInMonth(d.year,d.month))
End If 
Output.Show("月数:" & n1) 
Output.Show("Last:" & d) 
output.show("多余天数:" & datediff("d",d,d2))

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


加好友 发短信
等级:等待验证 帖子:386 积分:2482 威望:0 精华:1 注册:2011/5/10 11:13:00
  发帖心情 Post By:2011/8/2 16:59:00 [只看该作者]

不过是If的问题,非要公仔画出肠子来

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57584 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/8/3 8:03:00 [只看该作者]

以下是引用hhbb在2011-8-2 16:59:00的发言:
不过是If的问题,非要公仔画出肠子来

唉!


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57584 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/8/3 8:16:00 [只看该作者]

Y版你的代码真好用,其实这一段当时我就是想按照你这个思路动脑筋做来的,但是没有做出来.
d = d1.AddMonths(n1)
If d1.day = Date.DaysInMonth(d1.year,d1.month) Then
d = New Date(d.year,d.month, Date.DaysInMonth(d.year,d.month))
End If 
Output.Show("月数:" & n1) 
Output.Show("Last:" & d) 
output.show("多余天数:" & datediff("d",d,d2))

 回到顶部
总数 19 上一页 1 2