labview记录系统所用月数和天数

在做项目时会遇到采集系统的记录,比如一个项目测试要跑很久这个时候就需要在软件系统上显示项目运行了多少天,从开始测试开始一共用了多少年多少月。

年的话还好计算只需要把年份减掉就可以了,相比之下月份和天数就比较难确定,一年有12个月,每个月对应的天数都不同,还有年份不同但是结束测试的月份比开始测试的月份小一些,这样的话难免会进一,这样还好。涉及到天数时其中有很多种月份的情况,一年12个月,一共有7个月是31天,4个月是30天,还有二月份闰年是29天,平年是28天。

这里针对平年来判断一下,如果想要实现闰年的话在最前面加上一个判断闰年和平年的函数就可以了。这里以一年365天来算。

我们首先拿到结束测试时间和开始测试时间的年月日,通过数组来存储他们,分别比对开始测试时间和结束测试时间的年月日。这里分别获取他们的前六位并把他们放到数组中,以241120为例子这个是当前的时间。展现到数组里就是24,11,20,我们在和开始测试的时间211226,展现到数组中就是21,12,26,然后来判断一共过去了多少个月,和多少天。

首先我们来判断开始测试时间和结束测试时间的年份是否相等,如果相减为0的话我们只需要判断同一年里过去的天数和月数,这里示例如下,因为涉及到的情况比较繁琐,这里我用了一种比较笨的方法,首先先把1,3,5,7,8,10,12,这些大月放在一起,然后把2,4,6,9,这些30天的月份放在一起,最后2月单独放在一起,利用条件结构实现到具体月份的索引,这样的话就实现了除了月份之外,单独天数的相差的计算。

月份这里,因为如果结束测试时间和开始测试时间他们的天数相差超过30天,可以整除30这个就要在算上一个月,所以在这里加了一个判断的功能。

因为在同一年里,结束测试的月份肯定是大于开始测试的月份,这里确定月份后,以每个月固定30天来计算然后乘以相差的月份,然后在计算因为月份有31天和30天和28天所导致的区别,分别加上区别的天数就得到了所差月份导致的天数具体值。

下面我们来介绍一下,当年份不同时,也就是说我们运行了好几年之后,这个天数和月数是多少呢,这里就要针对年份来计算,这里我们还是以一年365天来计算,如果年份相差满一年但是月份相差较小,这里需要把年份之差减一。

针对相差过多的年份我们需要将月份乘以12在进行计算,然后再加上相应的月份相减之差,这里月份也分了两种情况,一种是当结束测试的月份大于开始测试的月份,还有一种情况是结束测试的月份小于开始测试的月份。

分别需要不同的计算方法来计算,这里是结束测试的月份小于开始测试的月份。

天数也是一样,我们先确定相差的年份,然后拿年份乘以365天,在加上相差的月份,这里还是拿一个月30天来乘然后根据索引的月份来判断最后加上多少天,最后来计算结束测试的时间和开始测试的时间天数之差,这里和之前也是一样,通过条件结构来分类一共几种情况,给他区分开,然后在计算即可。

这里我用到的方法属于比较笨拙了,把每个月按照30天计算,然后在枚举出不同月份31天,30天,28天,可能出现的情况,目前还没有好的办法,后面如果有更简便更精确的办法会继续更新上来。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器翻译基础与模型 之一: 基于RNN的模型

一、机器翻译发展历程 基于规则的-->基于实例的-->基于统计方法的-->基于神经网络的 传统统计机器翻译把词序列看作离散空间里的由多个特征函数描述的点,类似 于 n-gram 语言模型,这类模型对数据稀疏问题非常敏感。神经机器翻译把文字序列表示…

WPF Prism框架

一、关于Prism框架 Prism.Core:【Prism.dll】实现MVVM的核心功能,属于一个与平台无关的项目 Prism.Wpf:【Prism.Wpf】包含了DialogService,Region,Module,Navigation,其他的一些WPF的功能 Prism.Unity:【Prism.Unity.Wpf】,IOC容器 Prism.Unity>Pr…

STM32F103系统时钟配置

时钟是单片机运行的基础,时钟信号推动单片机内各个部分执行相应的指令。时钟系统就是CPU的脉搏,决定CPU速率,像人的心跳一样 只有有了心跳,人才能做其他的事情,而单片机有了时钟,才能够运行执行指令&#x…

2024年 Web3开发学习路线全指南

Web3是一个包含了很多领域的概念,不讨论币圈和链圈的划分,Web3包括有Defi、NFT、Game等基于区块链的Dapp应用的开发;也有VR、AR等追求视觉沉浸感的XR相关领域的开发;还有基于区块链底层架构或者协议的开发。 这篇文章给出的学习路…

CTF--php伪协议结合Base64绕过

Base64绕过 在ctf中,base64是比较常见的编码方式,在做题的时候发现自己对于base64的编码和解码规则不是很了解,并且恰好碰到了类似的题目,在翻阅了大佬的文章后记录一下,对于base64编码的学习和一个工具 base64编码是…

Linux 命令之 tar

文章目录 1 tar 命令介绍2 压缩与解压缩2.1 压缩2.2 解压 4 高级用法4.1 排除目录4.2 显示进度4.2.1 脚本解压缩4.2.2 命令解压缩4.2.3 压缩进度 1 tar 命令介绍 常见的压缩包有 .tar.gz、.tar.xz、.tar.bz2,以及 .rar、.zip、.7z 等压缩包。 常见的 tar 选项&#…

Jenkins修改LOGO

重启看的LOGO和登录页面左上角的LOGO 进入LOGO存在的目录 [roottest-server01 svgs]# pwd /opt/jenkins_data/war/images/svgs [roottest-server01 svgs]# ll logo.svg -rw-r--r-- 1 jenkins jenkins 29819 Oct 21 10:58 logo.svg #jenkins_data目录是我挂载到了/opt目录&…

【大模型】LLaMA: Open and Efficient Foundation Language Models

链接:https://arxiv.org/pdf/2302.13971 论文:LLaMA: Open and Efficient Foundation Language Models Introduction 规模和效果 7B to 65B,LLaMA-13B 超过 GPT-3 (175B)Motivation 如何最好地缩放特定训练计算预算的数据集和模型大小&…

vue添加LCD字体(液晶字体)数字美化,前端如何引用LCD字体液晶字体,如何转换?@font-face 如何使用?

文章目录 一、效果二、下载字体格式【[https://www.dafont.com/theme.php?cat302&text0123456789](https://www.dafont.com/theme.php?cat302&text0123456789)】三、下载后,解压后都是.ttf文件,在【[https://www.fontsquirrel.com/tools/webfo…

【大数据学习 | Spark】关于distinct算子

只有shuffle类的算子能够修改分区数量,这些算子不仅仅存在自己的功能,比如分组算子groupBy,它的功能是分组但是却可以修改分区。 而这里我们要讲的distinct算子也是一个shuffle类的算子。即可以修改分区。 scala> val arr Array(1,1,2,…

Qt桌面应用开发 第五天(常用控件 自定义控件)

目录 1.QPushButton和ToolButton 1.1QPushButton 1.2ToolButton 2.RadioButton和CheckBox 2.1RadioButton单选按钮 2.2CheckBox多选按钮 3.ListWidget 4.TreeWidget控件 5.TableWidget控件 6.Containers控件 6.1QScrollArea 6.2QToolBox 6.3QTabWidget 6.4QStacke…

Excel - VLOOKUP函数将指定列替换为字典值

背景:在根据各种复杂的口径导出报表数据时,因为关联的表较多、数据量较大,一行数据往往会存在三个以上的字典数据。 为了保证导出数据的效率,博主选择了导出字典code值后,在Excel中处理匹配字典值。在查询百度之后&am…

ctfshow-web入门-SSRF(web351-web360)

目录 1、web351 2、web352 3、web353 4、web354 5、web355 6、web356 7、web357 8、web358 9、web359 10、web360 1、web351 看到 curl_exec 函数,很典型的 SSRF 尝试使用 file 协议读文件: urlfile:///etc/passwd 成功读取到 /etc/passwd 同…

【vmware+ubuntu16.04】ROS学习_博物馆仿真克隆ROS-Academy-for-Beginners软件包处理依赖报错问题

首先安装git 进入终端,输入sudo apt-get install git 安装后,创建一个工作空间名为tutorial_ws, 输入 mkdir tutorial_ws#创建工作空间 cd tutorial_ws#进入 mkdir src cd src git clone https://github.com/DroidAITech/ROS-Academy-for-Be…

AI数字人视频小程序:引领未来互动新潮流

当下,随着人工智能技术的不断创新发展,各类AI系统已经成为了创新市场发展的重要力量,AI文案、AI数字人、AI视频等,为大众带来更加便捷的创作方式,AI成为了一个全新的风口,各种AI红利持续释放,市…

leetcode400第N位数字

代码 class Solution {public int findNthDigit(int n) {int base 1;//位数int weight 9;//权重while(n>(long)base*weight){//300n-base*weight;base;weight*10;}//n111 base3 weight900;n--;int res (int)Math.pow(10,base-1)n/base;int index n%base;return String…

MySQL扩展varchar字段长度能否Online DDL

目录 问题场景 Online DDL 简介 场景复现 DBdoctor快速识别 Online DDL 总结 问题场景 在MySQL数据库中,DDL变更可以通过两种算法实现:Copy算法和In-Place算法。Copy算法会复制整个表,这可能导致长时间的写入阻塞,从而严重影…

【WPF】Prism学习(九)

Prism Dependency Injection 1.Container Locator 1.1. Container Locator的引入: Container Locator是在Prism 8.0版本中新引入的一个特性。它的目的是为了帮助Prism框架摆脱对CommonServiceLocator的依赖,并解决一些必须回退到ServiceLocator模式的内…

.NET 9与C# 13革新:新数据类型与语法糖深度解析

记录(Record)类型 使用方式: public record Person(string FirstName, string LastName); 适用场景:当需要创建不可变的数据结构,且希望自动生成 GetHashCode 和 Equals 方法时。不适用场景:当数据结构需…

3C产品说明书电子化转变:用户体验、环保与商业机遇的共赢

在科技日新月异的当代社会,3C产品(涵盖计算机类、通信类和消费类电子产品)已成为我们日常生活中不可或缺的重要元素。与此同时,这些产品的配套说明书也经历了一场从纸质到电子化的深刻变革。这一转变不仅体现了技术的飞速进步&…