找回密码
 加入
搜索
查看: 1697|回复: 4

請教字符串比較的問題

[复制链接]
发表于 2009-3-11 13:49:19 | 显示全部楼层 |阅读模式
我的程式是這樣的,首先由$AddDate的陣列會先給出特定的四個日期,分別是2005/5/9、2005/5/16、2005/5/23、2005/5/30,然後將$AddDate與$AddArray做比較,如果有相同的日期出現,則分別將該相同的日期與該數值放進另兩個個新的陣列,分別是$NewDate和$NewArray。
那我現在有個想法,因為依照我目前的程式是能夠判定出2005/5/9、2005/5/16、2005/5/30是符合我上述要求的,都有將該日期的數值放進新的陣列,但是這樣2005/5/16就沒有數值了,所以如果說要讓程式判斷當指定的日期沒有數值時,自動使用下一天的數值2005/5/17的數值,那要如何修正呢?
#Include <Array.au3>
#include<date.au3>
Dim $AddDate[10]
Dim $AddArray[10]
Dim $NewArray[10]
Dim $NewDate[10]
Dim $m=0
$AddArray[0]='2005/5/9'
$AddArray[1]='15.6'
$AddArray[2]='2005/5/15'
$AddArray[3]='14.7'
$AddArray[4]='2005/5/17'
$AddArray[5]='13.9'
$AddArray[6]='2005/5/23'
$AddArray[7]='15.2'
$AddArray[8]='2005/5/30'
$AddArray[9]='14.6'

$date1="2005/5/1"
$date2="2005/5/31"
$iDateCalc = _DateDiff( 'd',$date1,$date2)
$j=Floor($iDateCalc/7)
Dim $AddDate[$j+1]
$AddDate[0]=$j

for $i=1 to $j  
        $AddDate[$i]= _DateTimeFormat(_DateAdd( 'd',$i*7, "2005/05/02"),2)
        for $j=0 to UBound($AddArray) - 1
                if ($AddDate[$i]==$AddArray[$j]) then   
                        $NewDate[$m]=$AddDate[$i]
                        $NewArray[$m]=$AddArray[$j+1]
                        $m=$m+1
                        
                EndIf


        Next
Next
_ArrayDisplay($AddDate)
_ArrayDisplay($NewDate)
_ArrayDisplay($NewArray)
发表于 2009-3-12 08:14:06 | 显示全部楼层
判断是否为空?
if $AddDate[$i] = "" then
else
endif
 楼主| 发表于 2009-3-12 09:58:14 | 显示全部楼层
問題是$AddDate本來就有資料,並不為空,我附上圖給大家看看:
$AddDate陣列:



$newdate陣列:



$newaway陣列:

現在就是因為5/16日沒有符合,所以$newdate和$newaway都沒有5/16的資料,因此有個想法就是既然這天沒有符合,那麼就自動將這天的數據用下一天的數據代替

[ 本帖最后由 fancky 于 2009-3-12 16:46 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2009-3-12 12:41:31 | 显示全部楼层
大概我的理解能力有限,看了很多遍了,怎么还是不明白,为什么2005/5/16你认为是适用的,但是程序为什么又把它剔除了呢?
 楼主| 发表于 2009-3-12 16:45:18 | 显示全部楼层
原帖由 KiwiCsj 于 2009-3-12 12:41 发表
大概我的理解能力有限,看了很多遍了,怎么还是不明白,为什么2005/5/16你认为是适用的,但是程序为什么又把它剔除了呢?

那是因為$AddArray裡面沒有2005/5/16但是$AddDate裡面有2005/5/16,因此沒有匹配的,所以會被剔除。
因此我想改善這個部分,以$AddDate裡面的日期為主,就算$AddArray裡面沒有符合2005/5/16,也要將2005/5/17或是2005/5/15的數值給予2005/5/16。這樣應該會比較清楚一點。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-23 07:34 , Processed in 0.076520 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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