【问题标题】:Start or End of week in ActionscriptActionscript 中的一周开始或结束
【发布时间】:2012-04-26 05:01:19
【问题描述】:

我正在寻找一种使用(目前坚持使用)Flex 4.1 在 Actionscript 中相对于今天开始一周的方法。在 Java 中,我会使用 Calendar 类通过以下方式执行此操作:-

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

我似乎找不到任何优雅的解决方案 - 我错过了什么吗?

【问题讨论】:

    标签: actionscript-3 apache-flex actionscript flex4


    【解决方案1】:

    有两个类,同名DateTimeFormatter。一个是纯Actionscript 类,另一个是添加到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);
    

    【讨论】:

    • 有点,我正在寻找获取一周开始的日期对象,而不仅仅是字符串。刚刚找到了一个第三方库as3commons.org/as3-commons-lang/asdoc/org/as3commons/lang/…,这可能是我正在寻找的,但尚未确认。
    • 上面的代码中没有涉及字符串:) Date 对象返回一个以毫秒为单位的纪元时间。一旦你有了它,你就可以使用代表一周中第一天的整数来计算所需的时间(以毫秒为单位)。然后,如有必要,重用或创建一个新的 Date 对象。
    • 仅使用DateFormatter 获取一周的第一天,这将与用户的区域设置有关。也许您可以将它与 as3commons 中的漂亮代码一起使用 :)
    • 哎呀,你说的很对...我不太在意语言环境,因为在这种情况下它们都在同一个地方,但为了解决问题,我认为还有cmets 做到了!
    猜你喜欢
    • 1970-01-01
    • 2019-08-02
    • 2016-02-03
    • 1970-01-01
    • 2020-07-12
    • 2019-11-06
    • 2021-01-18
    • 2016-08-11
    • 1970-01-01
    相关资源
    最近更新 更多