2012-04-26 33 views
0

私は、今日のFlexの4.1を使用して(そして現在はそのままで)Actionscriptで週の開始日を取得する方法を探しています。 Javaでは、私は介して、Calendarクラスを使用してこれを行うだろう: -Actionscriptの週の開始日または終了日

Calendar cal = Calendar.getInstance(); 
    cal.setTime(new Date()); 
    cal.set(Calendar.DAY_OF_WEEK, 
      1); 
    return cal.getTime(); 

私はどこか上品なようである任意の解決策を見つけるように見えることはできません - 私は何かが足りないのですか?

答えて

1

同じ名前の2つのクラス、DateTimeFormatterがあります。 1つは純粋なActionscriptクラスで、もう1つはFlex 4.5に追加された新しいクラスで、Actionscriptバージョンをラップします。 Flex versionはあなたのために重労働を起こします。

getFirstWeekday()メソッドがあります。指定したロケールになります。

[編集] 私は持ち去られた、あなたの質問に具体的に答えていない。私は、DateTimeFormatterよりも洗練されたものは何も認識していません。しかしそこからDateオブジェクトを使って現在の時刻を取得し、あなたが何をしているのかを知ることができます。

日付ユーティリティはほんの一握りですが、私はこの特定の解決策を認識していません。

var timeFormatter:DateTimeFormatter = new DateTimeFormatter(LocaleID.DEFAULT, DateTimeStyle.NONE, DateTimeStyle.SHORT); 
var firstDay:int = timeFormatter.getFirstWeekday() 
var now:Date = new Date(); 
var dayDelta:int = now.day - firstDay; 
var firstDayInMillis:Number = now.time - (dayDelta * 86400 * 1000); 
// you can construct a new Date from here: var first:Date = new Date(firstDayInMillis); 
+0

並べ替え、私は週の開始のためだけに文字列ではなく、オブジェクトの取得を見ています。ちょうど私が探しているかもしれないサードパーティ製のlibary http://www.as3commons.org/as3-commons-lang/asdoc/org/as3commons/lang/DateUtils.html#getStartOfWeek()が見つかりましたが、まだ確認してください。 –

+0

上記のコードにStringが含まれていません:) Dateオブジェクトは、エポックタイムをミリ秒単位で返します。いったんこれを取得すると、週の最初の曜日を表す整数を使用して、必要な時間をミリ秒単位で調べることができます。その後、必要に応じて、その時間を再利用するか、新しいDateオブジェクトを作成します。 –

+0

'DateFormatter'を使用して、ユーザのロケールの曜日の最初の曜日を取得します。たぶんあなたはas3commonsの気の利いたコードでこれを使うことができます:) –

関連する問題