/*日期转YYYYMMDD*/
formDate.fullYear+""+(formDate.month<10?("0"+formDate.month):formDate.month)+""+(formDate.day<10?("0"+formDate.day):formDate.day),

/**
* 虽然名字为fromFormatDayStr和toFormatDayStr, 单两个参数所代表的开始和结束年份没有先后顺序;如:
* SelfDateUtil.manyDayNum("20081230", "20110317")与SelfDateUtil.manyDayNum("20110317", "20081230")等效。
* */
private function manyDayNum(fromFormatDayStr:String, toFormatDayStr:String):Number{
var manyAllDayNum:Number = 0; //间隔的天数
var _fromYear:int = int(fromFormatDayStr.substr(0, 4));
var _toYear:int = int(toFormatDayStr.substr(0, 4));
if(_toYear == _fromYear){ //同一年
manyAllDayNum = Number(alreadyOverDay(toFormatDayStr)[0]) - Number(alreadyOverDay(fromFormatDayStr)[0]);
}else if(Math.abs(_toYear - _fromYear) == 1){ //相差一年
if(_toYear > _fromYear){
manyAllDayNum = Number(alreadyOverDay(fromFormatDayStr)[1]) + Number(alreadyOverDay(toFormatDayStr)[0]);
}else{
manyAllDayNum = Number(alreadyOverDay(toFormatDayStr)[1]) + Number(alreadyOverDay(fromFormatDayStr)[0]);
}
}else{ //相差两年或者两年以上
var mangYearNum:Number = Math.abs(Number(_toYear - _fromYear)); //中间间隔的年份
if(_toYear > _fromYear){
manyAllDayNum = Number(alreadyOverDay(fromFormatDayStr)[1]) + Number(alreadyOverDay(toFormatDayStr)[0]);
for(var i:int = 1; i < mangYearNum; i++){
if(isRunYear(String(_fromYear + i))){ //是闰年
manyAllDayNum += 366;
}else{ //不是闰年
manyAllDayNum += 365;
}
}
}else{
manyAllDayNum = Number(alreadyOverDay(toFormatDayStr)[1]) + Number(alreadyOverDay(fromFormatDayStr)[0]);
for(var j:int = 1; j < mangYearNum; j++){
if(isRunYear(String(_toYear + j))){ //是闰年
manyAllDayNum += 366;
}else{ //不是闰年
manyAllDayNum += 365;
}
}
}
}
return manyAllDayNum;
} /**指定的一年之内已经过了多少天了(算上当天),
*dayStr标准格式为YYYYMMDD,例如:20100816
*要保证dayStr参数的格式和实际含义正确,如不能出现20100229
*[0]表示已经过了多少天,[1]表示还剩下多少天 */
private function alreadyOverDay(dayFormatStr:String):Array{
var _tempArr:Array = new Array();
var alreadyDayNum:int = 0;
var _year:int = int(dayFormatStr.substr(0, 4));
var _month:int = int(dayFormatStr.substr(4, 2));
var _day:int = int(dayFormatStr.substr(6, 2));
if(_month == 1){
alreadyDayNum = _day;
}else if(_month == 3){
alreadyDayNum = 31 + _day;
}else if(_month == 4){
alreadyDayNum = 62 + _day;
}else if(_month == 5){
alreadyDayNum = 92 + _day;
}else if(_month == 6){
alreadyDayNum = 123 + _day;
}else if(_month == 7){
alreadyDayNum = 153 + _day;
}else if(_month == 8){
alreadyDayNum = 184 + _day;
}else if(_month == 9){
alreadyDayNum = 215 + _day;
}else if(_month == 10){
alreadyDayNum = 245 + _day;
}else if(_month == 11){
alreadyDayNum = 276 + _day;
}else if(_month == 12){
alreadyDayNum = 306 + _day;
}
if(isRunYear(dayFormatStr)){ //是闰年
if(_month == 2){
alreadyDayNum = 31 + _day;
}else if(_month == 1){ }else{
alreadyDayNum += 29;
}
_tempArr[0] = alreadyDayNum; //已经过的天数(算上今天)
_tempArr[1] = 366 - alreadyDayNum; //还剩多少天没有过
}else{ //不是闰年
if(_month == 2){
alreadyDayNum = 31 + _day;
}else if(_month == 1){ }else{
alreadyDayNum += 28;
}
_tempArr[0] = alreadyDayNum; //已经过的天数(算上今天)
_tempArr[1] = 365 - alreadyDayNum; //还剩多少天没有过
}
return _tempArr;
} /*指定的一年中过了多少天了,dayStr标准格式为YYYYMMDD,例如:20100816*/
private function isRunYear(dayStr:String):Boolean{
var _year:Number = Number(dayStr.substr(0, 4));
if((_year % 4 == 0 && _year % 100 != 0) || _year % 400 == 0){
return true;
}else{
return false;
}
}

  

As3 计算两个日期之间的天数差的更多相关文章

  1. 计算两个日期之间的天数差C++/java

    1--Java 分析:调用java中Calendar类 int days(Date date1,Date date2){ Calendar cal = new Calendar.getInstance ...

  2. JS计算两个日期之间的天数

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. c#后台计算2个日期之间的天数差

    / 计算2个日期之间的天数差 DateTime dt1 = Convert.DateTime("2007-8-1");  DateTime dt2 = Convert.DateTi ...

  4. iOS 计算两个日期之间的天数问题

    //获取当前时间若干年.月.日之后的时间 + (NSDate *)dateWithFromDate:(NSDate *)date years:(NSInteger)years months:(NSIn ...

  5. java计算两个日期之间的天数,排除节假日和周末

    如题所说,计算两个日期之前的天数,排除节假日和周末.这里天数的类型为double,因为该功能实现的是请假天数的计算,有请一上午假的为0.5天. 不够很坑的是每个日期都要查询数据库,感觉很浪费时间. 原 ...

  6. element ui 日期控件范围时间限制记录、以及计算两个日期之间的天数

    日期的筛选经常会有最小的日期选择,例如:当前日期 :clearable="false" :picker-options="pickerOptions0" val ...

  7. mysql计算两个日期之间的天数

    MYSQL自带函数计算给定的两个日期的间隔天数   有两个途径可获得   1.利用TO_DAYS函数   select to_days(now()) - to_days('20120512')   2 ...

  8. JS计算两个日期之间的天数,时间差计算

    1.日期之间的天数计算 //计算天数差的函数,通用 function DateDiff(sDate1, sDate2) { //sDate1和sDate2是2017-9-25格式 var aDate, ...

  9. JavaScript实现计算两个日期之间的天数

    以“yyyy-MM-dd”格式为例,现在有两个日期,分别为“2006-01-01”,“2007-05-20”. 1.调用Date.parser()方法,将字符串格式的时间戳转换为Date类型时间对象: ...

随机推荐

  1. 一个国外网盘pCloud——支持离线下载

    给大家分享一个国外网盘<支持离线下载> https://my.pcloud.com/#page=register&invite=HiegZ8aBrt7

  2. css属性

    文本: color 颜色 line-height 行高 direction 文本方向 letter-spacing 字符间距 text-align 对齐方式 text-decoration 文本修饰 ...

  3. 预编译头文件 StdAfx.h

    预编译头文件: 最常见的使用场景就是 StdAfx.h 文件,在这个文件中包含常用的头文件,比如windows.h,cstdio,string,别的 .cpp 文件去包含 StdAfx.h 头文件.编 ...

  4. 使用RedisTemplate的操作类访问Redis(转)

    深入理解Spring Redis的使用 (三).使用RedisTemplate的操作类访问Redis 事务需要开启enableTransactionSupport,然后使用@transactional ...

  5. UML系列03之UML时序图

    时序图介绍 时序图(Sequence Diagram),亦称为序列图或循序图,是一种UML行为图.时序图是用来描述系统内部是如何交互运作的,它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协 ...

  6. opencv 人脸识别 (一)训练样本的处理

    本文实现基于eigenface的人脸检测与识别.给定一个图像数据库,进行以下步骤: 进行人脸检测,将检测出的人脸存入数据库2 对数据库2进行人脸建模 在测试集上进行recognition   本篇实现 ...

  7. c# 文件简繁体转换

    C#   文件简繁体转换 简繁体转换: 方案一: 准确性高,耗性能 方案二: 准确性低,效率高 1 using Microsoft.International.Converters.Tradition ...

  8. bootstrap table 服务器端分页例子

    1,前台引入所需的js 可以从官网上下载 function getTab(){ var url = contextPath+'/fundRetreatVoucher/fundBatchRetreatV ...

  9. Android用AutoCompleteTextView实现搜索历史记录提示

    简介 在我们平常上网的时候经常会用到谷歌或百度,在输入框中输入我们想要输入的信息就会出现其他与其相关的提示信息,非常方便.这种效果在 Android中是用AutoCompleteTextView实现的 ...

  10. visual studio 2015常用快捷键

    常用快捷键 技巧 0.0 删除文件中的当前行: Home + Shife-End + Delete 技巧 1.1 避免意外复制一个空白行 工具->选项->文本编辑器->所有语言-&g ...