js版计算连续12个月计算不超3万公里

news2025/1/13 16:47:17
<!--考虑比亚迪车友不是程序员的多,写了个html版的,复制以下代码在记事本,改后缀名为test.html,然后用浏览器打开-->
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>连续12个月不超3万公里计算LIGUANGHUA</title>
        <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
      <style>
        .clocks {
          height: 500px;
          margin: 25px auto;
          position: relative;
          width: 500px;
        }
      </style>
    </head>
  <!--  <h1><a href="http://10.0.2.52:8081/test/index1" target="_parent">测试手动调用接口</a>></h1>-->
    <p>请输入开始年月份(如:202301):<input type="text" name="month" id="month"></p>
    <p>请输入每月公里数逗号隔开(如:2300,1233,3343):<input type="text" name="amounts" id="amounts" style="width:550px;"></p>
    <p><input type="button" value="开始计算" οnclick="counts()"></p>
    <div id="jieguo">
    </div>
    <script>
        function counts() {
            var months, amounts,array,hev;
            months = document.getElementById('month').value;
            amounts = document.getElementById('amounts').value;
            array = amounts.split(",");
            var sum=0,length,max,min,maxYear,minYear,k;
            length=array.length;
            var s;
            var jve=0;
            for (var i = 0; i < length; i++) {
                k=0;
                hev=parseInt(array[i]);
                max=hev;
                console.log(months);
                minYear=handelYear(months,i);
                maxYear=handelYear(months,i);
                console.log(minYear);
                console.log(maxYear);
                min=hev;
                sum += parseInt(array[i]);
                k++;
                for (var j = i+1; j < length; j++) {
                   // months.add(array[j]);
                    jve=parseInt(array[j]);
                    if (jve>max){
                        max=jve;
                        maxYear=handelYear(months,j);
                    }
                    if (jve<min){
                        min=jve;
                        minYear=handelYear(months,j);
                    }
                    sum+= jve;
                    k++;
                    if (k==12){
                        if (j<12){
                            console.log("从"+months+"至"+handelYear(months,11)+"的连续12个月的总里程:"+sum+"公里,平均每月行驶:"+parseInt(sum/k)+"公里,其中"+maxYear+"是单月最大行驶:"+max+"公里,"+minYear+"是单月最小行驶公里数:"+min+"公里");
                            s='<p> 从'+months+'至'+handelYear(months,11)+'的连续12个月的总里程:<span style="color: red ;font-size:20px;font-weight: bold">'+sum+'</span>公里,平均每月行驶:<span style="color: red ;font-size:20px;font-weight: bold">'+parseInt(sum/k)+'</span>公里,其中'+maxYear+'是单月最大行驶:<span style="color: red ;font-size:20px;font-weight: bold">'+max+'</span>公里,'+minYear+'是单月最小行驶公里数:<span style="color: red ;font-size:20px;font-weight: bold">'+min+'</span>公里'+'</p> ';

                        }else{
                            console.log("从"+handelYear(months,i)+"至"+handelYear(handelYear(months,i),11)+"的连续12个月的总里程:"+sum+"公里,平均每月行驶:"+parseInt(sum/k)+"公里,其中"+maxYear+"是单月最大行驶:"+max+"公里,"+minYear+"是单月最小行驶公里数:"+min+"公里");
                            s=s+' <p> 从'+handelYear(months,i)+'至'+handelYear(handelYear(months,i),11)+'的连续12个月的总里程:<span style="color: red ;font-size:20px;font-weight: bold">'+sum+'</span>公里,平均每月行驶:<span style="color: red ;font-size:20px;font-weight: bold">'+parseInt(sum/k)+'</span>公里,其中'+maxYear+'是单月最大行驶:<span style="color: red ;font-size:20px;font-weight: bold">'+max+'</span>公里,'+minYear+'是单月最小行驶公里数:<span style="color: red ;font-size:20px;font-weight: bold">'+min+'</span>公里'+'</p> ';

                        }
                        sum=0;
                        k=0;
                        break;
                    }else if  (k<12&&j==length-1){
                        if (j<12){
                            console.log("从"+handelYear(months,i)+"至"+handelYear(months,length-1)+"的连续"+ k+"个月的总里程:"+sum+"公里,平均每月行驶:"+parseInt(sum/k)+"公里,其中"+maxYear+"是单月最大行驶:"+max+"公里,"+minYear+"是单月最小行驶公里数:"+min+"公里");
                            //System.out.println("从"+month+"至"+handelYear(month,11)+"里程详情"+months.stream().map(String::valueOf).collect(Collectors.joining(",")));
                            s=s+'<p> 从'+handelYear(months,i)+'至'+handelYear(months,length-1)+'的连续'+ k+'个月的总里程:<span style="color: red ;font-size:20px;font-weight: bold">'+sum+'</span>公里,平均每月行驶:<span style="color: red ;font-size:20px;font-weight: bold">'+parseInt(sum/k)+'</span>公里,其中'+maxYear+'是单月最大行驶:<span style="color: red ;font-size:20px;font-weight: bold">'+max+'</span>公里,'+minYear+'是单月最小行驶公里数:<span style="color: red ;font-size:20px;font-weight: bold">'+min+'</span>公里'+'</p> ';
                        }else{
                            console.log("从"+handelYear(months,i)+"至"+handelYear(handelYear(months,i),k-1)+"的连续"+ k+"个月的总里程:"+sum+"公里,平均每月行驶:"+parseInt(sum/k)+"公里,其中"+maxYear+"是单月最大行驶:"+max+"公里,"+minYear+"是单月最小行驶公里数:"+min+"公里");
                            s=s+'<p> 从'+handelYear(months,i)+'至'+handelYear(handelYear(months,i),k-1)+'的连续'+ k+'个月的总里程:<span style="color: red ;font-size:20px;font-weight: bold">'+sum+'</span>公里,平均每月行驶:<span style="color: red ;font-size:20px;font-weight: bold">'+parseInt(sum/k)+'</span>公里,其中'+maxYear+'是单月最大行驶:<span style="color: red ;font-size:20px;font-weight: bold">'+max+'</span>公里,'+minYear+'是单月最小行驶公里数:<span style="color: red ;font-size:20px;font-weight: bold">'+min+'</span>公里'+'</p> ';
                        }
                        sum=0;
                        k=0;
                        break;
                    }
                }
            }
            console.log(sum);
            document.getElementById('jieguo').innerHTML='';
            document.getElementById('jieguo').innerHTML=s;
           /* oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]) //转换为9-25-2017格式
            aDate = sDate2.split("-")
            oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0])
            iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 / 24) //把相差的毫秒数转换为天数
            return iDays*/
        }
        function handelYear(month,length){
            var year=parseInt(month.substring(0,4));
            var mo=month.substring(4,6);
            var mon=0;
            if (mo.startsWith("0")){
                mon=parseInt(month.substring(5,6));
            }else{
                mon=parseInt(month.substring(4,6));
            }
            mon=mon+length;
            var j=parseInt(mon/12);
            if (mon>12){
                year=year+j;
                mon=mon-12*j;
            }
            var yearmon=null;
            if (mon>9){
                yearmon=year.toString()+mon.toString();
            }else{
                if (mon==0){
                    mon=mon+1;
                }
                yearmon=year.toString()+"0"+mon.toString();
            }
            return yearmon;
        }
    </script>
    <div>
       <!-- <table border="1">
            <tr>
                <td th:text="${users}">100</td>
                <td>300</td>
            </tr>
        </table>-->
    </div>
    <body>
    </body>
</html>

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/468135.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于SpringBoot3从零配置MybatisPlus

基于SpringBoot3从零配置MybatisPlus记录 文章目录 1.环境2.表数据准备3. 配置pom配置yml 配置MapperScan 3.问题总结问题1: Property sqlSessionFactory or sqlSessionTemplate are required问题2&#xff1a;org.apache.ibatis.binding.BindingException: Invalid bound stat…

Python学习13:说句心里话 A(python123)

描述 分两次从控制台接收用户的两个输入&#xff1a;第一个内容为"人名"&#xff0c;第二个内容为"心里话"。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪…

使用D435i深度相机运行ORB-SLAM3

下载安装链接 下载ORB-SLAM3地址&#xff1a; git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git eigen3多版本安装&#xff1a;https://blog.csdn.net/weixin_41756645/article/details/129570141 ORB-SLAM2中eigen3版本为&#xff1a;3.2.10版本 ORB-SLAM3中eigen3版…

【Jetpack】ViewModel + LiveData + DataBinding 综合使用 ( 核心要点说明 | 组合方式 | 代码示例 )

文章目录 一、ViewModel LiveData DataBinding 核心要点1、ViewModel 使用要点2、LiveData 使用要点3、DataBinding 使用要点 二、ViewModel LiveData DataBinding 代码示例1、ViewModel LiveData 代码2、build.gradle 构建脚本 - 启用 DataBinding3、DataBinding 布局文件…

ChatGPT实战100例 - (10) 提前体验ChatGPT的多模态绘图功能

文章目录 ChatGPT实战100例 - (10) 提前体验ChatGPT的多模态绘图功能一、需求与思路二、基本调教三、开始秀四、 总结 ChatGPT实战100例 - (10) 提前体验ChatGPT的多模态绘图功能 这个绘图其实比较基础&#xff0c;只能说是能显示个图吧 真要出图&#xff0c;隔壁 文心一言 秒杀…

如何提高三维模型OSGB格式转换3DTILES的转换速度和数据质量

如何提高三维模型OSGB格式转换3DTILES的转换速度和数据质量 提高三维模型从OSGB格式转换为3DTILES格式的转换速度和数据质量&#xff0c;可以从以下几个方面进行优化&#xff1a; 1、选用高效的转换工具&#xff1a;选择高效的转换工具是提高转换速度和数据质量的关键。目前市…

.NET中比肩System.Text.Json序列化反序列化组件MessagePack

简介 官方定义&#xff1a;MessagePack是一种高效的二进制序列化格式。它允许您像JSON一样在多个语言之间交换数据。但是它更快并且更小。 MessagePack是一种开源的序列化反序列化组件&#xff0c;可支持JAVA&#xff0c;C#等主流语言。在 C# 中使用 MessagePack&#xff0c…

javaScript:cropperjs是一款非常强大却又简单的图片裁剪工具

cropperjs是一款非常强大却又简单的图片裁剪工具&#xff0c;它可以进行非常灵活的配置&#xff0c;支持手机端使用&#xff0c;支持包括IE9以上的现代浏览器。&#xff08;关键是使用方法简单&#xff0c;几行代码就可以搞定&#xff09; 官方github文档&#xff1a;GitHub -…

深入理解计算机系统--理解编译器编译的过程

前言 大家在学习C语言的时候&#xff0c;相信对编译器这个词并不会感到陌生。我们也会知道编译器编译的过程是&#xff1a;预处理-》编译-》汇编-》链接。这篇文章主要介绍这四个过程中&#xff0c;编译器究竟做了那些工作&#xff0c;它是如何让一份高级程序转换成机器语言的…

USB 转 4 串口芯片 CH9104

CH9104 是一款USB总线的转接芯片&#xff0c;支持最高6M波特率与硬件流控&#xff0c;支持USB配置功能&#xff0c;提供RS485方向控制与GPIO等信号引脚&#xff0c;可实现PC等平台扩展多串口或多个串口设备升级成USB口。CH9104实现 USB 转四个异步串口 UART0/1/2/3 功能&#x…

Docker 在Linux-CentOS上的安装使用

Linux CentOS 虚拟机安装及与windows远程登录_XiaoGuaiSs的博客-CSDN博客 一、如果安装过程有兼容问题&#xff0c;执行更新 yum 包&#xff08;生产环境中此步操作需慎重&#xff09; 注意​ yum -y update&#xff1a;升级所有包同时也升级软件和系统内核&#xff1b;​ …

计讯物联智能虫情测报系统,保障粮食安全的守卫者

计讯物联农业虫情监测系统 夏天是粮食作物生长关键期&#xff0c;也是农作物病虫害高发期。因此&#xff0c;预防农作物病虫害在生产过程中是至关重要的环节。作为智慧农业的先行者&#xff0c;计讯物联以预防为主、综合防治为设计理念&#xff0c;利用先进的现代光、电、数控技…

Android、Android Studio 和 Gradle 是如何使用 Java 的

目录 Java平台JRE虚拟机JDKAndroid Studio 如何使用 JavaGradle 如何使用 JavaAndroid Gradle 插件从命令行执行 Gradle 构建Android 设备上是如何使用 Java 的 可以肯定地说&#xff0c;每个人都知道 Android 使用 Java。然而&#xff0c;“使用 Java ”的含义范围相当大。因此…

ROS学习8:ROS机器人平台设计

【Autolabor初级教程】ROS机器人入门 1. 电机与电机驱动板 1.1 直流减速电机 电机主体通过输入轴与减速箱相连接&#xff0c;通过减速箱的减速效果&#xff0c;最终外端的输出轴会按照比例 (取决于减速箱减速比) 降低电机输入轴的转速&#xff0c;当然速度降低之后&#xff0…

effective c++ item35-39

item35:考虑虚函数的替代方案 NVI----Non-Virtual Interface 不使用虚函数接口&#xff0c;子类也可以实现按需求更改实现&#xff1a; The Strategy Pattern via Function Pointers 也可以使用函数指针 或者使用stl::function The “Classic” Strategy Pattern item…

手术麻醉信息管理系统源码,生成规范麻醉文书,自动信息采集

C#手麻系统源码&#xff0c;C# .net 桌面软件 C/S版手术麻醉信息管理系统源码 手术麻醉信息管理系统源码是专门为麻醉科和手术室开发的围手术期临床信息管理系统&#xff0c;具备以下功能: 1.规范手术流程管理&#xff1a;系统整合了手术室、麻醉科的工作及管理流程&#xff…

一则“孔乙己文学”,刺痛了多少学子的心?

个人主页&#xff1a;【&#x1f60a;个人主页】 孔乙已是鲁迅笔下人物&#xff0c;穷困流倒还穿着象征读书人的长衫&#xff0c;迁腐、麻木。最近&#xff0c;大家自我调佩是“当代孔乙己”&#xff0c;学历成为思想负担&#xff0c;找工作时高不成低不就。 文章目录 前言对待…

【C++技能树】再也不怕没有对象了 --初识类

Halo&#xff0c;这里是Ppeua。平时主要更新C语言&#xff0c;C&#xff0c;数据结构算法…感兴趣就关注我吧&#xff01;你定不会失望。 目录 0. 初识类1.类的引入**在一个结构体里可以定义函数了:**定义一个Struct的时候再也不用写Struct了. 2.类的定义类的两种定义方式:成员…

05 【Sass语法介绍-插值】

1.前言 在很多编程器语言中都有插值这个概念&#xff0c;在 Sass 样式表的任何地方几乎都可以使用插值&#xff0c;你可以将这些包裹在 #{} 中来使用&#xff0c;所以记住在 Sass 中使用插值的方式是 #{} &#xff0c;本节我们一起来看一下插值在 Sass 中的使用场景以及它的语…

Authing 入选《2022年度中国高科技高成长企业》榜单

​ 近日&#xff0c;Authing 入选【2022 年度中国高科技高成长企业系列榜单 】- 【云原生高成长企业榜】&#xff0c;该榜单由【第一新声】联合【天眼查】发起的“数字中国”系列之 2022 年度中国高科技高成长企业系列榜单发布&#xff0c;该榜单旨在发现和挖掘被资本市场关注&…