c# 多数值区间判断是否有重叠
/// <summary>
/// 金额区间判断帮助类
/// </summary>
public static class DecimalRangeHelper
{
/// <summary>
/// 是否有交集
/// </summary>
/// <param name="currentRange"></param>
/// <param name="otherRange"></param>
/// <returns></returns>
public static bool IsIntersectionWith(this DecimalRange currentRange, DecimalRange otherRange)
{
return currentRange.Min.In(otherRange.Min, otherRange.Max) || currentRange.Max.In(otherRange.Min, otherRange.Max) && otherRange.Min != currentRange.Max;
} /// <summary>
/// 判断金额区间存在交集
/// </summary>
/// <param name="currentRanges"></param>
/// <returns></returns>
public static bool ExistsIntersectionRange(this List<DecimalRange> currentRanges)
{
return currentRanges.Any(p => currentRanges.Where(q => !object.ReferenceEqual(p,q)).Any(z => p.IsIntersectionWith(z)));
}
}
/// <summary>
/// 金额区间对应类
/// </summary>
public class DecimalRange
{
/// <summary>
/// 最大
/// </summary>
private decimal max; /// <summary>
/// 最小值
/// </summary>
public decimal Min { get; set; } /// <summary>
/// 最大值
/// </summary>
public decimal Max
{
get
{
return (max == ) ? Decimal.MaxValue : max;
}
set
{
max = value;
}
} /// <summary>
/// ToString
/// </summary>
/// <returns></returns>
public override string ToString()
{
return Min.ToString()+"-"+Max.ToString();
}
}
/// <summary>
/// 金额帮助类
/// </summary>
public static class DecimalHelper
{
/// <summary>
/// 判断指定金额是否在指定金额范围内
/// </summary>
public static readonly Func<decimal, decimal, decimal, bool> IsInDecimalPeriodByMomney = (current, min, max) => min <= current && max > current; /// <summary>
/// 判断指定金额是否在指定金额范围内
/// </summary>
public static bool In(this decimal current, decimal min, decimal max)
{
return IsInDecimalPeriodByMomney(current, min, max);
} /// <summary>
/// 判断指定金额范围是否包含指定金额范围内(max=0时表示不限制)
/// </summary>
public static bool InSpecial(this decimal currentMin, decimal currentMax, decimal min, decimal max)
{
if (max == )
{
max = Decimal.MaxValue;
}
if (currentMax == )
{
currentMax = Decimal.MaxValue;
}
return currentMin.In(min, max);
}
}
c# 多数值区间判断是否有重叠的更多相关文章
- MMS关键指标意义&各数值区间意义
MMS关键指标意义&各数值区间意义 What's MMS MongoDB Management Service (MMS) is a suite of services for managin ...
- NumPy 基于数值区间创建数组
来源:Python Numpy 教程 章节 Numpy 介绍 Numpy 安装 NumPy ndarray NumPy 数据类型 NumPy 数组创建 NumPy 基于已有数据创建数组 NumPy 基 ...
- shell脚本基础 数值运算 判断 及if语句
数值运算 整数运算[三种,随便掌握一种即可]expr 数字 运算符 数字 [root@ceshiji ~]# expr 1 + 1(运算符号都是+ - * / 注:*需要\*.%是取余,余数只有0 1 ...
- (贪心 区间) 51nod1091 线段的重叠
X轴上有N条线段,每条线段包括1个起点和终点.线段的重叠是这样来算的,[10 20]和[12 25]的重叠部分为[12 20]. 给出N条线段的起点和终点,从中选出2条线段,这两条线段的重叠部分是最长 ...
- js数值大小判断的错误
1.js中定义一个变量i,判断i的取值在[1,3]中的错误写法 if(1<= i <= 3) 假设js的值为4,浏览器在解析js时会先将1与4比较 ,显然1<= 4,返回结果为1,然 ...
- awk 取列后对数值进行判断取出大于1的数值
[root@dataline-prod nginx]# tail -2 access.log 122.238.119.177 - - [26/Oct/2018:18:20:25 +0800] &quo ...
- 021-PHP常用的数值类型判断函数
<?php //判断数组 $colors = array("red", "blue", "green"); if(is_array($ ...
- (2)用 if语句 区间判断
1 /*此例子只作为演示*/ 2 3 #include <stdio.h> 4 int main() 5 { 6 printf("请问贵公司给出的薪资是:\n"); 7 ...
- 用 区间判断(if)来猜价格的高低
1 #include <stdio.h> 2 #include <stdlib.h> 3 int main() 4 { 5 int price = 150; 6 int gue ...
随机推荐
- 类型或命名空间名称“Interop”在类或命名空间“Microsoft.Office”中不存在(是否缺少程序集引用?)
准备用C#编写Web程序,生成Excel报表,在使用下面语句时报错. using Microsoft.Office.Interop.Excel; 报错信息:类型或命名空间名称“Interop”在类或命 ...
- Python 网络爬虫 010 (高级功能) 解析 robots.txt 文件
解析 robots.txt 文件 使用的系统:Windows 10 64位 Python 语言版本:Python 2.7.10 V 使用的编程 Python 的集成开发环境:PyCharm 2016 ...
- Django框架 之 form组件的钩子
Django框架 之 form组件的钩子 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 3 ...
- Django框架 之 数据库与ORM
浏览目录 数据库的配置 ORM表模型 ORM之增(create,save) ORM之删(delete) ORM之改(update和save) ORM之查(filter,value) 一.数据库的配置 ...
- asp.net web 自定义控件
0.调用代码 protected override void Page_Load(object sender, EventArgs e) { //给基类服务接口复制,可不付 if (IsPostBac ...
- 使用HttpServletRequestWrapper修改请求参数 和 使用HttpServletResponseWrapper截获响应数据
Servlet规范中的Filter引入了一个功能强大的拦截模式.Filter能在request到达servlet的服务方法之前拦截request对象,而在服务方法转移控制后又能拦截response对象 ...
- canvas时钟demo
显示效果如下 源码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...
- jQuery对象与DOM对象及互相转化
<p id=‘’hello”></p> 普通处理,通过标准JavaScript处理: var p = document.getElementById('hello'); p.i ...
- cbv+resful+APIView源码分析
CBV源码分析 1概念:什么是cbv和fbv 已经什么是API class bass View ---基于类的视图 function bass View ---基于函数的视图 API(Applicat ...
- Linux 运维工程师经典面试题合集(不断更新中 ...)
写在前面的话 做运维以来,关注了很多关于互联网技术,培训等乱七八糟的公众号,时不时的就会推一些各种公司的面试题过来. 大致看了一下,发现自己很多知识要么遗忘了,要么很难说出个所以然,所以这里对那些个人 ...