标题:【求助】关于一年中旬的问题?
只看楼主
gdk2006
Rank: 4
等 级:业余侠客
威 望:8
帖 子:928
专家分:270
注 册:2006-7-2
结帖率:66.67%
 问题点数:0 回复次数:9 
【求助】关于一年中旬的问题?
想这样实现一个程序,一年有365天,然后将每月的每旬单独记录出来,这样的话就有36个记录点,即:2008-1-1到2008-1-10属于一年中的第一旬即(10天一个记录)记做1,2008-1-11-2880-1-20是一年中的第2旬……一直到2008-12-21到2008-12-31是属于最后一个记做36.
想写个函数,然后自动的算出这个时间段是属于一年的那个点,就是1-36这个之间的点,我写了一个如下:
function C_Q(C_date)
    X_C=Clng(DatePart("y",C_date)/10)'==运用函数调出天数然后用天数整除10得出特定旬值==
    if X_C>=1 and X_C<=36 then
        C_Q=X_C
    elseif X_C>36 then
        C_Q=36
    elseif X_C<=0 then
        C_Q=1
    end if
end function

但是发现1月份的时候就有问题,到2008-1-12的时候结果不是2。

我还想了另外的办法,实现是可以实现但是很复杂,要判断很多东西,看大家有没有跟简单的方法。谢谢了!
搜索更多相关主题的帖子: 记录 function 时间段 
2008-10-08 17:10
gdk2006
Rank: 4
等 级:业余侠客
威 望:8
帖 子:928
专家分:270
注 册:2006-7-2
得分:0 
【求助】关于一年中旬的问题?
想这样实现一个程序,一年有365天,然后将每月的每旬单独记录出来,这样的话就有36个记录点,即:2008-1-1到2008-1-10属于一年中的第一旬即(10天一个记录)记做1,2008-1-11-2880-1-20是一年中的第2旬……一直到2008-12-21到2008-12-31是属于最后一个记做36.
想写个函数,然后自动的算出这个时间段是属于一年的那个点,就是1-36这个之间的点,我写了一个如下:
function C_Q(C_date)
    X_C=Clng(DatePart("y",C_date)/10)'==运用函数调出天数然后用天数整除10得出特定旬值==
    if X_C>=1 and X_C<=36 then
        C_Q=X_C
    elseif X_C>36 then
        C_Q=36
    elseif X_C<=0 then
        C_Q=1
    end if
end function

但是发现1月份的时候就有问题,到2008-1-12的时候结果不是2。

我还想了另外的办法,实现是可以实现但是很复杂,要判断很多东西,看大家有没有跟简单的方法。谢谢了!

程序员的悲哀如何找女朋友?
追女解决方案百度“让她着迷”!
2008-10-08 17:13
cslldu
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2007-4-12
得分:0 
很菜的一个方法
我刚学ASP,用了一个很菜的方法,不过也出错了,计算老不正确,不知道错在哪里,请高手指点!:
function comp36(DtarDay)
    intM = month(DtarDay)
    intD = day(DtarDay)
    select case intM
        case 1
            strB = "1,2,3"
        case 2
            strB = "4,5,6"
        case 3
            strB = "7,8,9"
        case 4
            strB = "10,11,12"
        case 5
            strB = "13,14,15"
        case 6
            strB = "16,17,18"
        case 7
            strB = "19,20,21"
        case 8
            strB = "22,23,24"
        case 9
            strB = "25,26,27"
        case 10
            strB = "28,29,30"
        case 11
            strB = "31,32,33"
        case 12
            strB = "34,35,36"
    end select
    ArrB = split(strB,",")
    select case intD
        case intD <= 10
            comp36 = ArrB(0)
        case d>10 and d <=20
            comp36 = ArrB(1)
        case else
            comp36 = ArrB(2)
    end select
end function
2008-10-08 22:37
cslldu
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2007-4-12
得分:0 
更菜的方法是用36个CASE,呵呵,
2008-10-08 22:39
gdk2006
Rank: 4
等 级:业余侠客
威 望:8
帖 子:928
专家分:270
注 册:2006-7-2
得分:0 
楼上的代码稍加改动就可以了:

function comp36(DtarDay)
    intM = Cint(month(DtarDay))
    intD = Cint(day(DtarDay))
    select case intM
        case 1
            strB = "1,2,3"
        case 2
            strB = "4,5,6"
        case 3
            strB = "7,8,9"
        case 4
            strB = "10,11,12"
        case 5
            strB = "13,14,15"
        case 6
            strB = "16,17,18"
        case 7
            strB = "19,20,21"
        case 8
            strB = "22,23,24"
        case 9
            strB = "25,26,27"
        case 10
            strB = "28,29,30"
        case 11
            strB = "31,32,33"
        case 12
            strB = "34,35,36"
    end select
    ArrB = split(strB,",")
    if intD>=1 and intD <= 10 then
        comp36 = ArrB(0)
    elseif intD>10 and intD <=20 then
        comp36 = ArrB(1)
    elseif intD >=21 and intD <=31 then
        comp36 = ArrB(2)
    end if
end function

程序员的悲哀如何找女朋友?
追女解决方案百度“让她着迷”!
2008-10-09 11:36
gdk2006
Rank: 4
等 级:业余侠客
威 望:8
帖 子:928
专家分:270
注 册:2006-7-2
得分:0 
终于实现了!!感谢cslldu

程序员的悲哀如何找女朋友?
追女解决方案百度“让她着迷”!
2008-10-09 11:37
gdk2006
Rank: 4
等 级:业余侠客
威 望:8
帖 子:928
专家分:270
注 册:2006-7-2
得分:0 
[bo][un]gdk2006[/un] 在 2008-10-9 11:36 的发言:[/bo]

楼上的代码稍加改动就可以了:

function comp36(DtarDay)
    intM = Cint(month(DtarDay))
    intD = Cint(day(DtarDay))
    select case intM
        case 1
            strB = "1,2,3"
        case ...



这个不知道还有没有更简单的方法!

程序员的悲哀如何找女朋友?
追女解决方案百度“让她着迷”!
2008-10-09 14:05
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
得分:0 
DatePart("y",C_date)返回到指定日期的天数
如果是DatePart("y","2008-1-12"),结果是12,
12/10=1,怎么可能是2呢?

从BFS(Breadth First Study)到DFS(Depth First Study)
2008-10-09 15:13
cslldu
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2007-4-12
得分:0 
原来如此,多谢gdk2006指点!
2008-10-09 18:48
gdk2006
Rank: 4
等 级:业余侠客
威 望:8
帖 子:928
专家分:270
注 册:2006-7-2
得分:0 
[bo][un]永夜的极光[/un] 在 2008-10-9 15:13 的发言:[/bo]

DatePart("y",C_date)返回到指定日期的天数
如果是DatePart("y","2008-1-12"),结果是12,
12/10=1,怎么可能是2呢?


就是因为这个方法不行所以就用了其他的方法了!

程序员的悲哀如何找女朋友?
追女解决方案百度“让她着迷”!
2008-10-10 17:30



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-237039-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.556503 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved