位置:首页 > 其他编程语言 > flex actionScript时间处理相加返回相加后的date

flex actionScript时间处理相加返回相加后的date

时间:2026-07-29  |  作者:星河游者  |  阅读:0
` 标签保持原样,注释内容已替换为更生动、清晰的表述。

---

先说一个在不少项目中都会用到的场景:时间处理。很多开发者习惯自己写一套日期加减、比较的工具,但写起来容易忽略细节。下面这段 AS3 代码就是一个典型的日期工具类,涵盖了日期相加、差值计算以及比较三个核心操作。代码本身不复杂,但注释部分可以更清晰一些,我们直接看实现。

public class Util {
    public function Util() {
    }

    /**
     * 日期相加工具:按指定时间单位加上一个数值,返回新的 Date 对象
     * @param datepart 要操作的时间单位(如 fullyear、month、date 等)
     * @param number   要加上的数值(正数或负数)
     * @param date     被操作的日期,不传则默认当前时间
     * @return 相加后的新 Date 对象
     * 示例:dateAdd("month", 3) 返回当前时间加3个月
     */
    public function dateAdd(datepart:String = "", number:Number = 0, date:Date = null):Date {
        if (date == null) {
            /* 默认使用当前时间 */
            date = new Date();
        }
        var returnDate:Date = new Date(date.time);
        switch (datepart.toLowerCase()) {
            case "fullyear":
            case "month":
            case "date":
            case "hours":
            case "minutes":
            case "seconds":
            case "milliseconds":
                returnDate[datepart] += number;
                break;
            default:
                /* 不认识的时间单位,什么都不做 */
                break;
        }
        return returnDate;
    }

    /**
     * 计算两个日期相差的天数
     * @param dataBegin 开始日期
     * @param dateEnd   结束日期
     * @return 相差的天数(正数表示结束日期更晚)
     * 注意:单位是天,底层基于毫秒差换算
     */
    public function dateDiff(dataBegin:Date, dateEnd:Date):Number {
        var diff:Number = (dateEnd.time - dataBegin.time) / new Number(24 * 60 * 60 * 1000);
        return diff;
    }

    /**
     * 比较两个日期的先后顺序
     * @param date1
     * @param date2
     * @return 若 date1 < date2 返回 -1,相等返回 0,date1 > date2 返回 1
     * 内部直接比较时间戳,效率很高
     */
    public function dateCompare(date1:Date, date2:Date):int {
        if (Number(date1) < Number(date2)) {
            return -1;
        }
        if (Number(date1) == Number(date2)) {
            return 0;
        }
        return 1;
    }
}

免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。

相关文章

更多

精选合集

更多

大家都在玩

热门话题

大家都在看

更多