1

我正在尽力在 Actionscript 3 中做到这一点,但根本无法理解它。我需要计算从设定日期到今天已经过去了多少个星期一。乘以 3.5 并从 x 中减去。然后计算已经过了多少个星期二,乘以 7 并从 x 中减去。最后计算已经过了多少个星期三,乘以 7 并从 x 中扣除。

这将使我有一个准确的 x 值来进行其他计算。IOW 根据项目天数过去的剩余小时数的运行日历。

然后我打算允许用户根据 x 的剩余值预订部分时间。

到目前为止,我可以在 AS3 中获得星期几:

    var dayOfWeek_array:Array = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"); 
    var today_date:Date = new Date(); 
    var day_str:String = dayOfWeek_array[today_date.getDay()]; 
    trace("Today is "+day_str);

我觉得这里有点超出我的深度。非常感谢任何建议指导或帮助。

4

1 回答 1

1

如果我理解你的话:

public function astest()
{
    var days_count:Object = getDaysCounter(new Date(1984, 6, 6), new Date());

    trace("mondays:", days_count[1]);
    trace("tuesdays:", days_count[2]);
    trace("wednesdays:", days_count[3]);
}

private function getDaysCounter(from:Date, to:Date):Object
{
    //map of the day counter days_count[day] = count;
    var days_count:Object = {};

    //number of millisecons in one 24h day
    var day_ms:int = 24*60*60*1000;

    //the number of 24h day passed since "from" date
    var days_passed:int = (to.time - from.time)/day_ms;

    var iter_date:Date = from;
    //number of full weeks since "from" date
    var full_weeks:int = days_passed/7;

    for(var d:int = 0; d < 7; d++)
        days_count[d] = full_weeks;

    var last_day:int = from.day;
    var extra_days:int = days_passed%7 + last_day;
    for(var i:int=last_day; i < extra_days; i++)
    {
        //add 1 day to the current time
        iter_date.time += day_ms;
        days_count[iter_date.day]++;
    }

    return days_count;
}   

这段代码不计算当天,也就是说,如果今天是星期二,它直到明天才会计算在结果中,只计算完整的 24 小时过去。

于 2013-01-22T14:03:55.517 回答