2017-02-27 70 views
0

我寫了一些代碼來獲取當前日期,並將其與將來日期的應用程序限制進行比較。我不知道爲什麼這個功能不起作用。Actionscripts 3函數不起作用

getYYMMDD(); 

function getYYMMDD(): String { 
    var dateObj: Date = new Date(); 
    var year: String = String(dateObj.getFullYear()); 
    var month: String = String(dateObj.getMonth() + 1); 
    if (month.length == 1) { 
     month = "0" + month; 
    } 
    var date: String = String(dateObj.getDate()); 
    if (date.length == 1) { 
     date = "0" + date; 
    } 
    return year.substring(0, 4) + month + date; 

    trace(year + ":" + month + ":" + date); 
    if (int(year) > 2017 && int(month) > 5 && int(date) > 31) { 
     trace("SYSTEM TIME IS OFF."); 
    } else { 
     trace("SYSTEM TIME IS ON."); 
    } 
} 
+0

當你說 「迴歸」 立即發生,你的代碼的其餘部分沒有按」運行。把「return ...」放在函數的最後,而不是像你所做的那樣放在中間的某個地方。 –

+3

爲了將來的參考,說「這不行」「是沒有用的」。你應該解釋你打算髮生什麼以及發生了什麼。因爲我保證所發生的事情正是你要告訴它做的。電腦不違反或罷工。我們無法讀懂你的想法。 –

+0

如果您收到錯誤,請將錯誤及其詳細信息放入您的問題中,並記下錯誤指向的行號。如果您的行爲出現意外,請解釋您正在發生的事情或未發生的事情。 – BadFeelingAboutThis

回答

4

(1)因爲你的函數返回String類型的數據...

function getYYMMDD(): String 

確保返回的數據用繩子接收... 即:someString = getYYMMDD();表示someString現在已從函數返回值。

(2)return(退出功能)太快......

return的最後一個命令,讓你的函數內的所有其他代碼運行。

(3)你應該考慮返回Boolean型(真/假)...

var can_Start : Boolean = false; //# assume false before checking 

can_Start = getYYMMDD(); //# use function to update status to true/false 

if (can_Start == true) { run_Program(); } 
else { trace("Sorry time has expired"); } 

function getYYMMDD(): Boolean 
{ 
    var dateObj: Date = new Date(); 
    var year: String = String(dateObj.getFullYear()); 

    var month: String = String(dateObj.getMonth() + 1); 
    if (month.length == 1) { month = "0" + month; } 

    var date: String = String(dateObj.getDate()); 
    if (date.length == 1) { date = "0" + date; } 

    trace(year + ":" + month + ":" + date); 

    if(int(year) == 2017) 
    { 
     if(int(month) >= 05 && int(date) > 31) 
     { trace("SYSTEM TIME IS OFF."); can_Start = false; } //# can_Start == false; 
     else { trace("SYSTEM TIME IS ON."); can_Start = true; } //# can_Start == true; 
    } 

    return can_Start; 
} 
+0

我沒有看到您的退貨聲明? –

+0

好點。對於條件,最後的IF語句具有「返回false」和「返回true」。我現在已經明白了一點,也發現了Asker日期檢查邏輯中的一個缺陷。 –