2009-04-13 10 views
1

この質問の意図は、長い複雑な関数を記述するのではなく、組み込みのDateクラスを使用して日付/時刻計算のソリューションを収集することです。組み込みのDateクラスを使用して時間を節約する方法はありますか?

誰かが非常に賢いものを思いついたら、私は自分で答えを書いて答えを受け取ります。しかし、これはほとんどの場合、ソリューションのコレクションとして意味があります。なぜなら、日付を処理するために複雑すぎるコードがよく見られるからです。

Dateクラスではできないもののための長い解決策として、これはではなく、です。 http://help.adobe.com/en_US/AS3LCR/Flash_10.0/Date.html

+0

これはかなり露骨な評判whoringのように思えるもありますされています。私はdownvoteの嵐が来る前にこれとあなたのコミュニティwikiへの回答を変更することをお勧めします。 – Welbog

+0

私はあなたの意見を見ます。私はそれが実際の質問ではないので、質問をコミュニティに変えます。回答に問題は見られません。 –

答えて

1

適切にあなたがgetTime()関数を使用する必要がある日付に比較するには、それが日付に比較することが容易になりますどの1970年1月1日以来、あなたのミリ秒単位の時間を与えるだろう、後で日付はより大きな値を返します。

違いを得るには、一方を差し引くことはできますが、残念ながら、これをきれいに処理するためのタイムスパンクラスはありません。あなたは、その差をユーザに適切に提示するために数学を少し使用しなければなりません(例えば、日の差を得るために差を1日のミリ秒数で割るなど)。

var date1:Date = new Date(1994, 12, 24); 
var date2:Date = new Date(1991, 1, 3); 
if(date1.getTime() > date2.getTime()) 
    trace("date1 is after date2"); 
else 
    trace("date2 is after or the same as date1"); 
0

は、現在のシステム日付は、単にコンストラクタに任意の値を渡すことなく、新しいDateオブジェクトを作成するには:

開始するには良い場所はここで見つける参照です。このように:

var today:Date = new Date(); 
trace("The date and time right now is: " + today. toLocaleString()); 
trace("The date right now is: " + today. toLocaleDateString()); 
trace("The time right now is: " + today. toLocaleTimeString()); 
0

組み込みのDateクラスでは、「オーバーフロー」が非常にうまく処理されます。これは、時間を加算または減算するために使用できます。フィールドの1つがオーバーフローした場合、日付クラスはオーバーフローを加算または減算することによってそれを処理します。

var date:Date = new Date(1993, 12, 28); 
trace("7 days after the " + date.toLocaleDateString()); 
date.setDate(date.Date + 7); 
trace("It was the " + date.toLocaleDateString()); 
1

Dateクラスを使用して、ルールに対するすべての例外をコーディングすることなく、1年がうるう年だったかどうかを簡単に知ることができます。 1番目のマート(1番目のマートは0番目)から1日を引くことで、2月の日数を見つけることができます。

は、その月を覚えておいてくださいマートは、第三の月であることがインデックス2

function CheckIfYearIsLeapYear(year:uint):Boolean 
{ 
    return new Date(year, 2, 0).Date == 29; 
} 
1

を持っているので、ゼロインデックスObjectUtil.dateCompare(a,b)

関連する問題