Math-Date

本文详细介绍了JavaScript中Math对象的功能与用法,包括常用的数学运算和随机数生成技巧。同时,深入探讨了Date对象的创建、日期时间的获取与设置方法,以及日期格式化和日期差值计算的实用技巧。

一.MATH

1:Math对象

Math 对象用于执行数学任务。

Math 对象并不像 Date 和 String 那样是对象的类,因此没有构造函数 Math()。无需创建它,通过把 Math 作为对象使用就可以调用其所有属性和方法。

2:Math属性

PI:返回圆周率(约等于3.14159)。

console.log(Math.PI);

3:Math方法

Math.round(3.6);   // 四舍五入。

console.log(Math.round(3.2));

Math.random();     // 返回大于等于0到小于1之间的随机数。

console.log(Math.random());

Math.max(a, b);    // 返回较大的数值。

console.log(Math.max(4,5,3,2));

Math.min(a, b);    // 返回较小的数值。

console.log(Math.min(4,5,3,2));

Math.abs(num);     // 返回绝对值。

console.log(Math.abs(-4));

Math.ceil(3.6);    // 向上取整。

console.log(Math.ceil(3.1));

Math.floor(3.6);   // 向下取整。

console.log(Math.floor(-3.9));

Math.pow(x, y);    // x的y次方。

console.log(Math.pow(4,3));

Math.sqrt(num);    // 开平方。

console.log(Math.sqrt(4));

4:随机数如何设定范围

案例:0 - 100(包含)之间的随机值

console.log(Math.round(Math.random() * 100));

案例:0 - 99(包含)之间的随机值

console.log(Math.floor(Math.random() * 100));

案例:1 - 100(包含)之间的随机值

console.log(Math.ceil(Math.random() * 100));

5:10进制转16进制或8进制

console.log((153).toString(16));//十进制转十六进制
console.log((153).toString(8));//十进制转八进制

 

二.DATE

1:日期对象

定义:JS DATE使用UTC(国际协调时间)1970,1,1,0,0,0,0所经过的毫秒数。

在JS中日期也是它的内置对象,所以我们要对日期进行获取和操作,必须实例化对象。

2:创建日期对象

var oDate=new Date();

将会包含本地时间的信息,包括年月日时分秒 星期。

var oDate = new Date();
console.log(oDate);

可以传入参数的格式:

1).“时:分:秒 月/日/年”、“月/日/年 时:分:秒”、“年/月/日”等字符串。

“时:分:秒 月/日/年”

var oDate = new Date('12:12:12 12/12/2018');
console.log(oDate);

“月/日/年 时:分:秒”

var oDate = new Date('12/12/2018 12:12:12');
console.log(oDate);

“年/月/日”

var oDate = new Date('12/12/2019');
console.log(oDate);

2). 年,月,日,时,分,秒。注意不能加“”。月是从0开始算的。

3). 时间戳。

3:日期对象获取信息的方法

注:月份和星期都是从0开始计算的。

// 时间戳:从1970年1月1日0时0分0秒0毫秒到某个时间点所经历的毫秒数

// 获取信息对象的方法

 var oDate = new Date();

getDate():从 Date 对象返回一个月中的某一天 (1 ~ 31)。

console.log(oDate.getDate());

getMonth():从 Date 对象返回月份 (0 ~ 11)。

console.log(oDate.getMonth()); //0代表1月

getFullYear():从 Date 对象以四位数字返回年份。

console.log(oDate.getFullYear());

getDay():从 Date 对象返回一周中的某一天 (0 ~ 6)。 其中0代表星期日。

getYear():请使用 getFullYear() 方法代替。由 getYear() 返回的值不总是 4 位的数字!对于介于 1900 与 1999 之间的年份,getYear() 方法仅返回两位数字。对于 1900 之前或 1999 之后的年份,则返回 4 位数字!ECMAscript已经不再要求使用该函数

getHours():返回 Date 对象的小时 (0 ~ 23)。

 console.log(oDate.getHours());

getMinutes():返回 Date 对象的分钟 (0 ~ 59)。

console.log(oDate.getMinutes());

getSeconds():返回 Date 对象的秒数 (0 ~ 59)。

console.log(oDate.getSeconds());

getMilliseconds():返回 Date 对象的毫秒(0 ~ 999)。

console.log(oDate.getMilliseconds());

getTime():返回 1970 年 1 月 1 日至今的毫秒数。
console.log(oDate.getTime());
getDay():返回星期几。
console.log(oDate.getDay());

4:日期对象设置信息的方法

// 设置日期信息的方法

setDate():设置 Date 对象中月的某一天 (1 ~ 31)。

oDate.setDate(26);

setMonth():设置 Date 对象中月份 (0 ~ 11)。

oDate.setMonth(10);

setFullYear():设置 Date 对象中的年份(四位数字)。

oDate.setFullYear(2017);

setYear() 请使用 setFullYear() 方法代替。如果 year 参数是两位的数字,比如 setYear(91),则该方法会理解为 1991。如果要规定 1990 年之前或 1999 年之后的年份,请使用四位数字。 ECMAscript已经不再要求使用该函数

setHours():设置 Date 对象中的小时 (0 ~ 23)。

oDate.setHours(18);

setMinutes():设置 Date 对象中的分钟 (0 ~ 59)。

oDate.getMinutes(18);

setSeconds():设置 Date 对象中的秒钟 (0 ~ 59)。

oDate.setSeconds(001);

setMilliseconds():设置 Date 对象中的毫秒 (0 ~ 999)。

oDate.setMilliseconds(18);

setTime():以毫秒设置 Date 对象。

oDate.setTime(1516775284475);
console.log(oDate);

5:关于日期对象的常用操作

1:将日期格式化成字符串。

2:将指定格式字符串转化成日期对象。

/*
  
将日期格式化成字符串
   格式:YYYY-MM-DD HH:II:SS
*/

function formatDateToString() {
   
var oDate = new Date();
    var
       
year  = oDate.getFullYear(),
       
month = oDate.getMonth() + 1,
       
date  = oDate.getDate(),
       
hour  = oDate.getHours(),
       
minute= oDate.getMinutes(),
       
second= oDate.getSeconds();

    return
year + '-' + month + '-' + date + ' ' + hour + ':' + minute + ':' + second;
}
/*
  
将指定格式的日期字符串转换成日期对象
   格式:YYYY-MM-DD HH:II:SS
*/

function formatStringToDate(str) {
   
var oDate = str.split(' ');

    var
left = oDate[0], right = oDate[1];

   
left = left.split('-');
   
right = right.split(':');

    return new
Date(left[0], left[1] - 1, left[2], right[0], right[1], right[2]);
}
console.
log(formatDateToString());
console.log(formatStringToDate('2017-10-9 12:36:23'));

3:日期字符串转为毫秒数。

/*
  
日期字符串转为毫秒数
   格式:YYYY-MM-DD HH:II:SS
*/

function formatStringToMilli(str) {
   
var oDate = formatStringToDate(str);
    return
oDate.getTime();
}
console.
log(formatStringToMilli('2017-10-9 12:36:23'));

4:计算两个日期的时间差值。

/*
  
计算两个日期的时间差值
   格式:YYYY-MM-DD HH:II:SS
*/

function diffDate(str1, str2) {
   
var
       
oDate1 = formatStringToDate(str1),
       
oDate2 = formatStringToDate(str2);
    return
oDate2.getTime() - oDate1.getTime();
}
console.
log(diffDate('2017-10-9 12:36:23', '2017-10-9 12:36:24'));

5:延时器和定时器

延时器:

语法:setTimeout(函数或者代码串,指定的时间(毫秒));

在指定的毫秒数后只执行一次函数或代码。

setTimeout(function(){
    console.
log('蹦');
},3000);

清除延迟器:clearTimeout();

setTimeout(function(){
   
clearTimeout(timer);
},2000);

定时器:

语法:setInterval(函数或者代码串,指定的时间(毫秒));

按照指定的周期(毫秒)不断的执行函数或者是代码串。

var num = 0;
setInterval(function(){
    console.
log(num++);
},1000);

清除定时器:clearInterval();

var num = 5;
var
timer = setInterval(function(){
    console.
log(--num);
    if
(num == 0){
       
clearInterval(timer);
   
}
}
,1000);

 

【源码免费下载链接】:https://renmaiwang.cn/s/mz20w ### 数字万用表二极管档测试原理与使用技巧详解#### 一、测试原理概览数字万用表的二极管档是专为检测半导体元件如二极管设计的功能之一,它能准确判断二极管的好坏以及测量其正向压降。与传统的模拟式万用表相比,数字万用表的这一功能更为精确和直观。其工作原理基于向二极管施加一定电压并测量流过的电流,从而判断二极管的导通状态。#### 二、数字万用表二极管档的工作原理在讨论具体工作原理之前,我们先了解数字万用表二极管档与普通电阻档的区别。普通电阻档提供的测试电流较小,不足以充分激活半导体元件的PN结,导致测量结果不准确。然而,二极管档设计时考虑了这一问题,提供了更大的测试电流,确保了对半导体元件特性的有效评估。以DT830型数字万用表为例,其二极管档电路设计巧妙,提供约2.8V的基准电压,通过精密的分压电路确保电流适中,既不会损坏二极管也不会导致测量失准。具体电路中,基准电压源通过一系列电阻(如R17、R18等)分压后,向被测二极管VD提供测试电流。在没有接入二极管的情况下,电路中的A、B两点电压会稳定在特定值;一旦接入二极管,A点电压会被箝位至二极管的正向压降,大约0.7V(硅管)或0.3V(锗管)。此时,流入二极管的电流约为1mA(硅管)或1.3mA(锗管),足以激活二极管而不致于损害它。#### 三、安全保护机制值得注意的是,数字万用表在设计二极管档时还融入了安全保护机制。例如,当误将二极管档用于测量市电电压(AC220V)时,电路中设置的保护元件(如热敏电阻PTC和晶体管Q1、Q2)会启动,限制电流,避免对仪表造成损害。这种设计不仅提升了仪表的可靠性,也增强了操作者的安全性。#### 四、二极管档的使用技巧掌握正确的使用方法是发挥数字万用表二极管档优势的关键。以下是使用步骤:1. **连接仪
内容概要:本文详细比较了9种智能优化算法——CGO(混沌引力优化)、SCA(正弦余弦算法)、GWO(灰狼优化)、CSA(冠状病毒优化)、SSA(麻雀搜索算法)、HHO(哈里斯鹰优化)、WOA(鲸鱼优化算法)、PSO(粒子群优化)和TSO(穿越沙漠优化),并通过Matlab代码实现对这些算法的性能进行了仿真对比。文章重点展示了各算法在不同测试函数下的收敛速度、寻优能力及稳定性,并提供了完整的代码资源,便于读者复现实验结果。此外,文档还附带多个相关科研方向的技术支持介绍,涵盖机器学习、路径规划、信号处理、电力系统优化等多个领域,突出了智能优化算法在实际工程问题中的广泛应用价值。; 【9种优化算法比较】CGO、SCA、GWO、CSA、SSA、HHO、WOA、PSO、TSO智能优化算法比较(Matlab代码实现) 适合人群:具备一定Matlab编程基础,从事智能优化算法研究或应用的研究生、科研人员及工程技术人员,尤其适合正在开展算法改进与仿真实验的相关从业者; 使用场景及目标:①对比分析主流智能优化算法的性能差异,选择最适合特定问题的优化方法;②学习如何在Matlab中实现并测试优化算法,用于解决调度、路径规划、参数优化等实际科研与工程问题; 阅读建议:建议读者结合提供的Matlab代码逐项运行实验,深入理解每种算法的迭代机制与参数设置,同时参考文中提到的其他资源扩展应用场景,强化算法设计与调参能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值