Actionscript 3 actionscript 3中的日期和星期日计算

Actionscript 3 actionscript 3中的日期和星期日计算,actionscript-3,dayofweek,date-arithmetic,Actionscript 3,Dayofweek,Date Arithmetic,我正在尽我最大的努力在ActionScript3中做到这一点,但我的头脑根本无法控制它。我需要计算从一个设定日期到今天已经过去了多少个星期一。乘以3.5,从x中扣除。然后计算星期二过去了多少天,乘以7,从x中扣除。最后计算星期三过去了多少天,乘以7,从x中扣除 这将允许我有一个精确的x值来进行其他计算。根据已过去的项目天数,查看剩余可用小时的运行日历 然后,我打算允许用户根据剩余的x值预订时间段 到目前为止,我可以在AS3中获得一周中的某一天: var dayOfWeek_array:A

我正在尽我最大的努力在ActionScript3中做到这一点,但我的头脑根本无法控制它。我需要计算从一个设定日期到今天已经过去了多少个星期一。乘以3.5,从x中扣除。然后计算星期二过去了多少天,乘以7,从x中扣除。最后计算星期三过去了多少天,乘以7,从x中扣除

这将允许我有一个精确的x值来进行其他计算。根据已过去的项目天数,查看剩余可用小时的运行日历

然后,我打算允许用户根据剩余的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);

我觉得这里有点不对劲。非常感谢您的任何建议、指导或帮助。

如果我非常了解您:

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;
}   
公共函数astest()
{
var days_count:Object=getDaysCenter(新日期(1984,6,6),new Date());
跟踪(“星期一:”,天数[1]);
跟踪(“周二:”,天数[2]);
跟踪(“星期三:”,天计数[3]);
}
私有函数getDaysCenter(from:Date,to:Date):对象
{
//日计数器天数的映射\u count[天]=计数;
变量天数:对象={};
//一天24小时内的毫秒数
风险日:int=24*60*60*1000;
//自“开始”日期起经过的24小时天数
var天数:int=(to.time-from.time)/天;
var iter_日期:日期=起始日期;
//自“开始”日期起的完整周数
var完整周数:int=通过天数/7;
对于(变量d:int=0;d<7;d++)
天数=整周;
var last_day:int=from.day;
var额外天数:int=通过%7的天数+最后一天;
对于(变量i:int=最后一天;i

此代码不计算当前日期,也就是说,如果今天是星期二,它将不计入结果,直到明天,只计算经过的整整24小时。

如果我很了解您:

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;
}   
公共函数astest()
{
var days_count:Object=getDaysCenter(新日期(1984,6,6),new Date());
跟踪(“星期一:”,天数[1]);
跟踪(“周二:”,天数[2]);
跟踪(“星期三:”,天计数[3]);
}
私有函数getDaysCenter(from:Date,to:Date):对象
{
//日计数器天数的映射\u count[天]=计数;
变量天数:对象={};
//一天24小时内的毫秒数
风险日:int=24*60*60*1000;
//自“开始”日期起经过的24小时天数
var天数:int=(to.time-from.time)/天;
var iter_日期:日期=起始日期;
//自“开始”日期起的完整周数
var完整周数:int=通过天数/7;
对于(变量d:int=0;d<7;d++)
天数=整周;
var last_day:int=from.day;
var额外天数:int=通过%7的天数+最后一天;
对于(变量i:int=最后一天;i

此代码不计算当前日期,也就是说,如果今天是星期二,它将不计入结果,直到明天,只计算整个24小时过去。

Hi@fsbmain感谢您的快速响应。这看起来是对的。我要试一试,看看进展如何。提前感谢hi@fsbmain感谢您的快速回复。这看起来是对的。我要试一试,看看进展如何。提前谢谢