/// <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# 多数值区间判断是否有重叠的更多相关文章

  1. MMS关键指标意义&各数值区间意义

    MMS关键指标意义&各数值区间意义 What's MMS MongoDB Management Service (MMS) is a suite of services for managin ...

  2. NumPy 基于数值区间创建数组

    来源:Python Numpy 教程 章节 Numpy 介绍 Numpy 安装 NumPy ndarray NumPy 数据类型 NumPy 数组创建 NumPy 基于已有数据创建数组 NumPy 基 ...

  3. shell脚本基础 数值运算 判断 及if语句

    数值运算 整数运算[三种,随便掌握一种即可]expr 数字 运算符 数字 [root@ceshiji ~]# expr 1 + 1(运算符号都是+ - * / 注:*需要\*.%是取余,余数只有0 1 ...

  4. (贪心 区间) 51nod1091 线段的重叠

    X轴上有N条线段,每条线段包括1个起点和终点.线段的重叠是这样来算的,[10 20]和[12 25]的重叠部分为[12 20]. 给出N条线段的起点和终点,从中选出2条线段,这两条线段的重叠部分是最长 ...

  5. js数值大小判断的错误

    1.js中定义一个变量i,判断i的取值在[1,3]中的错误写法 if(1<= i <= 3) 假设js的值为4,浏览器在解析js时会先将1与4比较 ,显然1<= 4,返回结果为1,然 ...

  6. awk 取列后对数值进行判断取出大于1的数值

    [root@dataline-prod nginx]# tail -2 access.log 122.238.119.177 - - [26/Oct/2018:18:20:25 +0800] &quo ...

  7. 021-PHP常用的数值类型判断函数

    <?php //判断数组 $colors = array("red", "blue", "green"); if(is_array($ ...

  8. (2)用 if语句 区间判断

    1 /*此例子只作为演示*/ 2 3 #include <stdio.h> 4 int main() 5 { 6 printf("请问贵公司给出的薪资是:\n"); 7 ...

  9. 用 区间判断(if)来猜价格的高低

    1 #include <stdio.h> 2 #include <stdlib.h> 3 int main() 4 { 5 int price = 150; 6 int gue ...

随机推荐

  1. 运用alarm系统调用检测网络是否断开

    比如对于一个Server/Client程序,Client会每隔一定时间(比如TIME_OUT_CLIENT)会向Server发送“CheckConnect”信息,Server收到这个信息会调用回调函数 ...

  2. cakephp中sql查询in

    $list = $this->Capital->find('all', array('conditions'=>array('remark in '=>array('银联支付' ...

  3. hdu 2211 杀人游戏

    设f(N,K)返回最后取出的编号 那么f(n,k)进行第一次选后,剩下n-n/k个人,这剩下的人里最后被取出的编号为f(n-n/k,k)记为x 那么它在前一次队列里的编号则是(x-1)/(k-1)+x ...

  4. 如何看待那些不能重现的bug?

    在我们日常测试活动中,经常会发现一些bug,但是这些bug可能就是昙花一现,再也无法(或者很难)重现出来,内心灰常崩溃.那到底有哪些方面可能会导致这类的缺陷发生呢? 我以自己工作中所遇到的给出一些自己 ...

  5. javax.servlet.jsp.PageContext cannot be resolved to a type

    <dependency> <groupId>javax.servlet</groupId> <artifactId>jsp-api</artifa ...

  6. web集群时session同步的3种方法

    在做了web集群后,你肯定会首先考虑session同步问题,因为通过负载均衡后,同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话,一个登录用户,一会是登录状态,一会又不是 ...

  7. HttpServletResponse函數

    一.負責向客戶端發送數據的方法 1.ServletOutStream getOutputStream() 获得一个Servlet字节流输出数据 案例: response.setHeader(" ...

  8. .Net Core 项目引用本地类库方式(二)

    上篇文章有详细的介绍.Net Core 项目中引用本地类库通过打包,然后Nugety引用方式,这里再介绍一种引用包的方式

  9. EF Power Tools使用

    转载:http://blog.csdn.net/planisnothing/article/details/8532316 1.可以很方便根据数据库生成Code First模式的代码,如果是已有项目转 ...

  10. javascript js函数重名后面的覆盖前面的

    js 函数重名后面的覆盖前面的   var x = 1;    var y = 0;    var z = 0;    function add(n) { return n = n + 1; }    ...