当前位置: 首页 > article >正文

【Javascript Day10】Math对象、Math随机数、时间对象

Math对象

console.log("圆周率:", Math.PI );

        // 对小数进行格式化
        var num1 = 58.667;
        console.log("截断式取整", parseInt(num1) );

        // Math.floor()    地板函数 - 小数 向下取整
        console.log("舍去小数(截断式取整):", Math.floor(num1) );

        // Math.ceil() 天花板函数 - 小数 向上取整
        var num2 = 58.000000000001;
        console.log("有小数则+1:",Math.ceil(num2));

        // Math.round()    四舍五入版
        var num3 = 23.4567;
        console.log( "四舍五入:",Math.round(num3) );
        var num4 = 23.5123;
        console.log( "四舍五入:",Math.round(num4) );

        // Math.abs()    绝对值 - 将负数转换为正数
        var num5 = 99.999;
        console.log("绝对值:",Math.abs(num5));
        Math.abs
        var num6 = -99.999;
        console.log("绝对值:",Math.abs(num6));
        
        // Math.max( ...args )  求最大值
        // Math.min( ...args )    求最小值
        //     JS api 文档中方法参数前出现 ... 表示任意长度的参数数量
        // var nums = [1,2,3,4,5]
        // console.log( Math.max( nums ) ); // NaN
        var maxNum = Math.max( 23,76,84,56 );
        var minNum = Math.min( 23,76,84,56 );
        console.log(maxNum);
        console.log(minNum);

Math随机数

// 随机数
        //      1. 伪随机:语言提供的随机函数都是伪随机 -> 是使用固定的代码规则生成
        //      2. 真随机:数值生成无规律可循环

        // Math.random()    获取范围在[0,1)内的随机值
        console.log( Math.random() );
        console.log( Math.random() );
        console.log( Math.random() );
        console.log( Math.random() );
        console.log( Math.random() );

        
        // 需要生成一个 [1,10) 之间的随机整数
        // var num = Math.random()*10;  // [0,10) 小数
        // var num = Math.random()*10+1;  // [1,11) 小数
        // var num = Math.random()*9;  // [0,9) 小数
        // var num = Math.random()*9+1;  // [1,10) 小数
        var num = Math.floor( Math.random()*9 ) + 1; // [1,10) 整数
        console.log(num);

        // 需要生成一个 [min,max) 之间的随机整数  max>min
        // Math.floor( Math.random()*(max-min) ) + min;
        

        // 需要生成一个 [3,10] 之间的随机整数
        // var num1 = Math.random()  // [0,1) 小数
        var num1 = Math.floor( Math.random()*8 ) // [0,8) 整数 -> [0,7]
        var num1 = Math.floor( Math.random()*8 ) + 3 // [3,10]

        // 需要生成一个 [min,max] 之间的随机整数  max>min
        // Math.floor( Math.random()*(max-min + 1) ) + min;


        function randomInt(min,max){
            return Math.floor( Math.random()*(max-min+1) ) + min;
        }

        console.log( randomInt(3,11) );
        console.log( randomInt(3,11) );
        console.log( randomInt(3,11) );
        console.log( randomInt(3,11) );
        console.log( randomInt(3,11) );
        console.log( randomInt(3,11) );
        console.log( randomInt(3,11) );

时间对象

// var user = {
        //     name:"tom",
        //     age:23
        // }
        // console.log(user); // 对象标准的输出格式 { …… }


        // js 提供了一个构造函数 Date , 该函数用于创建一个时间对象
        //      为什么时间需要以对象方式存储?  用于时间计算,或单独获取对应的值
        // var time1 = "2012-12-23"
        var day1 = new Date();  // 创建了一个时间对象 - 默认创建时间对象记录的是当前计算机的时间
        console.log(day1); // Fri Jan 17 2025 13:46:33 GMT+0800 (中国标准时间)  // ISO标准时间格式//19行
        // JS中存在一个对象在 console.log 时会自动调用 toString() 方法 => 将对象转换为字符串
        console.log( day1.toString() ); // 等同于 19 行操作
        
        var str = day1.toLocaleString(); // 基于计算机语言转换为本地时间
        console.log(str);

        var date = day1.toLocaleDateString() // 基于计算机语言转换为只有日期的格式
        console.log(date);
        
        var time = day1.toLocaleTimeString() // 基于计算机语言转换为只有时间的格式
        console.log(time);


        

 独立时间值获取(返回的是数值)

  //      getFullYear() 获取完整年份
        console.log( day1.getFullYear() );
        //      getMonth() 获取月份 0~11
        console.log( day1.getMonth() );
        //      getDate() 获取日 从 1 开始
        console.log( day1.getDate() );
        //      getHours() 获取小时 24小时制
        console.log( day1.getHours() );
        //      getMinutes() 获取分钟
        console.log( day1.getMinutes() );
        //      getSeconds() 获取秒
        console.log( day1.getSeconds() );
        //      getMilliseconds() 获取毫秒,毫秒是以 1000 为进制
        console.log( day1.getMilliseconds() );
        
        var timeStr =   `${day1.getFullYear()}年${day1.getMonth()+1}月${day1.getDate()}日`
                      + ` ${day1.getHours()}:${day1.getMinutes()}:${day1.getSeconds()}`;
        console.log(timeStr);
        
        // getDay() 返回星期几 - 数值 - 0~6
        var weeks = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]
        console.log( day1.getDay() );
        console.log( weeks[ day1.getDay() ] );

        // getTime() 返回完整毫秒值 【相距于1970/01/01 08:00:00的毫秒差】
        console.log( day1.getTime() );

时间对象时间设定

var day1 = new Date(); // 获取当前系统的时间 => 时间对象
        var day2 = Date.now(); // 获取当前系统的时间 => 毫秒值
        console.log(day1);
        console.log(day2);
        
        // 指定时间创建时间对象
        //      new Date( 年,月,日,时,分,秒 )
        //               1970,0,1,0,0,0
        var day3 = new Date(2022,2,3,14,23,45);
        console.log( day3.toLocaleString() );
        
        var day4 = new Date(2022,2,3);
        console.log( day4.toLocaleString() );

        var day4 = new Date(2022,2);
        console.log( day4.toLocaleString() );

        //      new Date(毫秒值)
        var day4 = new Date(2022); // 2022 => 毫秒 + 1970/01/01 8:0:0
        console.log( day4.toLocaleString() );

        var day5 = new Date("2022/01/02 23:11:23");
        console.log( day5.toLocaleString() );

        var day6 = new Date("2022-12-23 16:15:23");
        console.log( day6.toLocaleString() );
        
        var day7 = new Date("2022/01/02");
        console.log( day7.toLocaleString() );
        
        // 字符时时间定义,必须从年月日开始
        //  如果无法转换返回 内容为 Invalid Date 的对象
        var day8 = new Date("16:15:23");
        if(day8=="Invalid Date"){
            console.log("时间格式不合法");
        }else{
            console.log( day8.toLocaleString() );
        }

        var day9 = new Date("2022");
        console.log( day9.toLocaleString() );
        
        var nowDay = new Date();
        console.log( nowDay.toLocaleString() );
        // 时间对象的每个独立的 get 取值方法,都有一个对应的赋值方法
        nowDay.setFullYear(1999);
        console.log( nowDay.toLocaleString() );
        nowDay.setMonth(4);
        console.log( nowDay.toLocaleString() );
        // 赋值规则会基于时间规则进行计算进位或退位
        nowDay.setMonth(12);
        console.log( nowDay.toLocaleString() );
        nowDay.setMonth(-2);
        console.log( nowDay.toLocaleString() );
        

        // 2004 年 2月
        var d = new Date("2004/3");
        d.setDate(0); // 向前退1天
        console.log( d.toLocaleString() );
        console.log( d.getDate() );

练习

输入两个日期,遵循“三天打鱼两天晒网”规则,计算这两个日期中打鱼和晒网的天数并输出

 var start = new Date("2023/11/5")
        var end = new Date("2025/1/17")
        function calculate(start ,end){
            var gap = ((end - start)/86400000);
            var a = gap % 5;
            if (a <= 3){
                var b = 0;
                var d = a;
            }
            else{
                var b = a -3
                var d = 3;
            }
            var c = Math.floor( gap / 5 );
            return{
                fish: 3*c + d,
                dry: 2*c + b
            }
        }

        console.log(calculate(start ,end))


http://www.kler.cn/a/507419.html

相关文章:

  • C#-方法(函数)
  • C 语言运算符的优先级和结合性
  • 网络设备安全保证计划 (NESAS) - 供应商视角 笔记
  • C++ 的 CTAD 与推断指示(Deduction Guides)
  • 用css和html制作太极图
  • Yolov8 目标检测剪枝学习记录
  • LabVIEW实车四轮轮速信号再现系统
  • tomcat项目运行后报500
  • Java 高级工程师面试高频题:JVM+Redis+ 并发 + 算法 + 框架
  • Quantum supremacy using a programmable superconducting processor 全文翻译,配公式和图
  • 将 AzureBlob 的日志通过 Azure Event Hubs 发给 Elasticsearch(3 纯python的经济方案)
  • CSS3 2D 转换介绍
  • element表格有横向滚动条时产生错位或者偏移(火狐浏览器)
  • linux Debian包管理器apt安装软件包由于依赖关系安装失败解决方法
  • 系统思考—团队学习
  • 解锁动态规划的奥秘:从零到精通的创新思维解析(6)
  • Zookeeper 数据迁移实战:基础环境搭建与高效迁移方案全览
  • 鸿蒙动态路由实现方案
  • 国产游戏行业的挑战与机遇:IT技术如何引领未来
  • IEEE期刊;latex模板学习记录
  • 从AI生成内容到虚拟现实:娱乐体验的新边界
  • 天机学堂笔记1-网关拦截器获取用户信息保存到ThreadLocal
  • 从RNN到Transformer:生成式AI技术演变与未来展望
  • 【深度学习】Pytorch:导入导出模型参数
  • python mysql库的三个库mysqlclient mysql-connector-python pymysql如何选择,他们之间的区别
  • 【Linux】打破Linux神秘的面纱