JS常用方法函数

//获得某月的最后一天
function getLastDay(year, month) { var new_year = year; //取当前的年份
var new_month = month++;//取下一个月的第一天,方便计算(最后一天不固定)
if (month > 12) { new_month -= 12; //月份减
new_year++; //年份增
} var d = new Date(new_year, new_month, 1); //取当年当月中的第一天
d.setDate(d.getDate() - 1); var month = d.getMonth() + 1; var day = d.getDate(); if (month < 10) { month = "0" + month; } if (day < 10) { day = "0" + day; } var val = d.getFullYear() + "-" + month + "-" + day; return val; }

//[公共]数组去除重复项 - 参数:数组 function uniqueArray(a) { temp = new Array(); for (var i = 0; i < a.length; i++) { if (!contains(temp, a[i])) { temp.length += 1; temp[temp.length - 1] = a[i]; } } return temp; }

///[公共]判断一个字符串是否包含另一个字符串 - 参数:字符串1, 字符串2; 返回值:字符串1包含字符串2, 返回true function contains(tempStr, str) { return tempStr.indexOf(str) >= 0; }

//[公共]日期类型加减天数 - 参数:日期, 需要加减的天数(days为负数时为减, 为正数时为加); 返回值:加减后的日期字符串值 function addDate(date, days) { var d = new Date(date); d.setDate(d.getDate() + days); var month = d.getMonth() + 1; var day = d.getDate(); if (month < 10) { month = "0" + month; } if (day < 10) { day = "0" + day; } var val = d.getFullYear() + "" + month + "" + day; return val; }

//[公共]获取当前日期(Date)/时间(Time) - 参数:日期类型('Date' = 不带时间, 'Time' = 带时间); 返回值:当前年月日或当前年月日时分秒 function getNowDate(dateType) { var mydate = new Date(); var str = "" + mydate.getFullYear() + "-"; str += (mydate.getMonth() + 1) + "-"; str += mydate.getDate() + ""; if (dateType == "Time")//时间 { str += " " + mydate.getHours() + ":" + mydate.getMinutes(); } return str; }

//[公共]日期类型比较 - 参数: 日期字符串1, 日期字符串2, 判断类型('大于等于'或"大于"); 返回值:日期字符串1大于或大于等于日期字符串2, 返回true function dateComparison1(date1, date2, type) { var isOK = false; var oDate1 = new Date(date1); var oDate2 = new Date(date2); if (type == "大于等于") { if (oDate1.getTime() >= oDate2.getTime()) { isOK = true; } else { isOK = false; } } else { if (oDate1.getTime() > oDate2.getTime()) { isOK = true; } else { isOK = false; } } return isOK; }

//[公共]日期类型比较 - 参数: 日期字符串1, 日期字符串2, 判断类型('小于等于'或"小于"); 返回值:日期字符串1小于或小于等于日期字符串2, 返回true function dateComparison2(date1, date2, type) { var isOK = false; var oDate1 = new Date(date1); var oDate2 = new Date(date2); if (type == "小于等于") { if (oDate1.getTime() <= oDate2.getTime()) { isOK = true; } else { isOK = false; } } else { if (oDate1.getTime() < oDate2.getTime()) { isOK = true; } else { isOK = false; } } return isOK; }

//加减乘除函数说明:javascript的加减乘除结果会有误差,在两个浮点数相除的时候会比较明显。这个函数返回较为精确的除法结果

//加法函数; 调用:accAdd(arg1,arg2); 返回值:arg1加上arg2的精确结果 function accAdd(arg1, arg2) { var r1, r2, m; try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 } try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 } m = Math.pow(10, Math.max(r1, r2)) return (arg1 * m + arg2 * m) / m }

//减法函数; 调用:accSub(arg1,arg2); 返回值:arg1减上arg2的精确结果
function accSub(arg1, arg2) { return accAdd(arg1, -arg2); }

//乘法函数; 调用:accMul(arg1,arg2); 返回值:arg1乘以arg2的精确结果 function accMul(arg1, arg2) { var m = 0, s1 = arg1.toString(), s2 = arg2.toString(); try { m += s1.split(".")[1].length } catch (e) { } try { m += s2.split(".")[1].length } catch (e) { } return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m) }

//除法函数; 调用:accDiv(arg1,arg2); 返回值:arg1除以arg2的精确结果 function accDiv(arg1, arg2) { var t1 = 0, t2 = 0, r1, r2; try { t1 = arg1.toString().split(".")[1].length } catch (e) { } try { t2 = arg2.toString().split(".")[1].length } catch (e) { } with (Math) { r1 = Number(arg1.toString().replace(".", "")) r2 = Number(arg2.toString().replace(".", "")) return (r1 / r2) * pow(10, t2 - t1); } }

//获取两点之间的角度 function GetAngle(pntFirst, pntNext) { var dRotateAngle = Math.atan2(Math.abs(pntFirst.X - pntNext.X), Math.abs(pntFirst.Y - pntNext.Y)); if (pntNext.X >= pntFirst.X) { if (pntNext.Y >= pntFirst.Y) { } else { dRotateAngle = Math.PI - dRotateAngle; } } else { if (pntNext.Y >= pntFirst.Y) { dRotateAngle = 2 * Math.PI - dRotateAngle; } else { dRotateAngle = Math.PI + dRotateAngle; } } dRotateAngle = dRotateAngle * 180 / Math.PI; return dRotateAngle; }

//经纬度转化 function latlonConvert(ne) {

var result = "";

var indexE = ne.indexOf("E");
var indexW = ne.indexOf("W");
var indexN = ne.indexOf("N");
var indexS = ne.indexOf("S");

var ew = ((indexE > indexW) ? "E" : "W");
var ns = ((indexN > indexS) ? "N" : "S");
try {
    var sewValue = "";
    var snsValue = "";
    if (ne.indexOf(ew) > ne.indexOf(ns)) {
        sewValue = ne.substring(ne.indexOf(ew) + 1);
        snsValue = ne.substring(ne.indexOf(ns) + 1, ne.indexOf(ew) - ne.indexOf(ns));
    }
    else {
        snsValue = ne.substring(ne.indexOf(ns) + 1);
        sewValue = ne.substring(ne.indexOf(ew) + 1, ne.indexOf(ns) - ne.indexOf(ew));
    }

    var ewValue = 0;
    var nsValue = 0;
    nsValue = parseFloat(snsValue.substring(0, 2)) + parseFloat("0." + snsValue.substring(2)) / 0.6;
    if (sewValue.length == 6 || sewValue.length == 7) {
        ewValue = parseFloat(sewValue.substring(0, 3)) + parseFloat("0." + sewValue.substring(3)) / 0.6;
    }
    else {
        ewValue = 0;
    }
    if (ew == "W") ewValue = -ewValue;
    if (ns == "S") nsValue = -nsValue;

    result = nsValue + "," + ewValue

}
catch (exx) {
    result = "";
}

return result;

}

转载于:https://my.oschina.net/wanghao1008/blog/894100

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值