`

判断当前时间是否在限制时间段之内

    博客分类:
  • Java
阅读更多
 /**
	 * 判断当前时间是否在限制时间段之内(是:返回true,否:返回false)
	 * 
	 * @return
	 */
	public static boolean isLimitTime() {
		boolean bool = false;
		Date currentTime = com.born.sys.util.date.DateUtil.getDateHHObject();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
		String currentDateStr = sdf.format(currentTime);
		String day = currentDateStr.substring(8, 10);
		String monthEndDay = DateUtil.getEndDateOfMonth(sdf1
				.format(currentTime));
		if ("01".equals(day)) {
			bool = true;
		} else if ("02".equals(day)) {
			String timeTemp = currentDateStr.substring(0, 10) + " 09:00:00";
			try {
				Date endTime = sdf.parse(timeTemp);
				long interval = (currentTime.getTime() - endTime.getTime()) / 1000;// 秒
				if (interval < 0) {
					bool = true;
				}
			} catch (ParseException e) {
				e.printStackTrace();
			}
		} else {
			if (day.equals(monthEndDay.subSequence(8, 10))) {
				String timeTemp = monthEndDay + " 22:00:00";
				try {
					Date endTime = sdf.parse(timeTemp);
					long interval = (currentTime.getTime() - endTime.getTime()) / 1000;// 秒
					if (interval > 0) {
						bool = true;
					}
				} catch (ParseException e) {
					e.printStackTrace();
				}
			}
		}
		return bool;
	}

	/**
	 * 获取今天日期是1号还是2号或者月末最后一天, 1日:1 2日:2 月末:3
	 * 
	 * @return
	 */
	public static String getDayLimit() {
		String reStr = "0";
		Date currentTime = com.born.sys.util.date.DateUtil.getDateHHObject();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
		String currentDateStr = sdf.format(currentTime);
		String day = currentDateStr.substring(8, 10);
		String monthEndDay = DateUtil.getEndDateOfMonth(sdf1
				.format(currentTime));
		if ("01".equals(day)) {
			reStr = "1";
		} else if ("02".equals(day)) {
			reStr = "2";
		} else {
			if (day.equals(monthEndDay.subSequence(8, 10))) {
				reStr = "3";
			}
		}
		return reStr;
	}

	/**
	 * 获取一个月的最后一天
	 * 
	 * @param dat
	 * @return
	 */
	public static String getEndDateOfMonth(String date) {// yyyy-MM-dd
		String str = date.substring(0, 8);
		String month = date.substring(5, 7);
		int mon = Integer.parseInt(month);
		if (mon == 1 || mon == 3 || mon == 5 || mon == 7 || mon == 8
				|| mon == 10 || mon == 12) {
			str += "31";
		} else if (mon == 4 || mon == 6 || mon == 9 || mon == 11) {
			str += "30";
		} else {
			if (isLeapYear(date)) {
				str += "29";
			} else {
				str += "28";
			}
		}
		return str;
	}

	/**
	 * 判断是否润年
	 * 
	 * @param ddate
	 * @return
	 */
	public static boolean isLeapYear(String ddate) {
		Date d = com.born.sys.util.date.DateUtil.getDateHHObject();
		GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();
		gc.setTime(d);
		int year = gc.get(Calendar.YEAR);
		if ((year % 400) == 0)
			return true;
		else if ((year % 4) == 0) {
			if ((year % 100) == 0)
				return false;
			else
				return true;
		} else
			return false;
	}

 

分享到:
评论

相关推荐

    任意時間區分白晚班

    在这个例子中,`CASE WHEN`结构被用来判断特定时间是否属于白天班次还是夜晚班次。 #### 语法示例: ```sql CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE resultN END ``` 其中...

    K线剩余时间指标

    - **交易信号**:某些交易策略可能基于K线形态的完整度,比如早晨之星或黄昏之星,KTime可以辅助判断这些形态是否能顺利完成。 3. **使用方法**: - **结合其他指标**:KTime应与趋势指标、动量指标或其他技术...

    Redis实战记录之限制操作频率

    3. **时间范围**:每个操作在特定时间段内(如30秒、10秒、一天)内受到限制。 4. **操作次数**:每个用户在该时间段内能执行的最多操作次数。 5. **超出后的处理**:超限后会禁止操作一段时间,并显示相应提示。 ...

    15.精确掌控并发:滑动时间窗口算法在分布式环境下并发流量控制的设计与实现_V20240116.pdf

    **限制检查**:如果任意连续时间段内的请求总数超过了预设的阈值,则拒绝新的请求。 4. **窗口更新**:随着时间的推移,窗口会不断地向前滑动,相应的计数器也会随之更新。 #### 2. 滑动时间窗口在支付系统中的...

    java判断试题.pdf

    结束 `session` 的主要方式包括关闭浏览器、两次访问之间的间隔时间超过非活动时间限制,或者显式地调用 `HttpSession` 的 `invalidate()` 方法。 --- #### 20. `Properties` 类的 `load()` 方法 **知识点**: `...

    冷却技能_按钮几分钟内不能点击.rar

    你需要创建一个脚本,记录技能使用的时间,并根据预设的冷却时间来判断是否允许再次使用。 3. **MonoBehaviour生命周期**:理解MonoBehaviour类的Update()、OnMouseDown()等方法的生命周期对实现技能冷却至关重要。...

    Louts Notes 公式

    3. **时间限制**:你可以设置公式来限制特定时间段内的操作,如限制在非工作时间使用系统: ```lotusscript Dim currentTime As Variant currentTime = Now() '... If Evaluate("@If(((h&gt;8 & h)|(h&gt;=14 & h)|(h=8&m...

    plc教程理论篇之plc的计数指令及计数程序设计二.pdf

    - **时间区间的划分**:计数器的当前值可以用来定义不同的时间段,例如CNT 000、C0值0-49对应时间段1,50-99对应时间段2,这可用于时间控制任务,比如喷泉的喷水时间控制。 - **中断功能**:某些高速计数器支持...

    Hans123_Trader v2 - MetaTrader 5EA.zip

    EA的核心功能之一是在指定的时间段内进行交易。这表明“Hans123_Trader v2”具有时间管理能力,可以在特定的市场活跃时段启动交易策略,避免在市场清淡时参与交易,降低无谓的风险。交易时间段的选择往往基于对市场...

    电力电子SVPWM五段法仿真.doc

    根据扇区编号规则,可以构建逻辑判断模块来确定当前扇区,并通过示波器观察S的波形,以确认扇区切换顺序。 然后,合成参考矢量时需要计算扇区两矢量的作用时间。例如,在扇区3中,上方矢量作用时间为\( T_1 \),...

    河北省巨鹿县 高二英语上学期第一次月考试题.doc

    6. **时间管理**:听力测试的特殊之处在于它有严格的时间限制,学生需要在短时间内完成大量题目。因此,合理的时间分配和快速的反应速度是取得好成绩的关键。 7. **应试技巧**:在实际考试中,学生应学会在听的同时...

    生产制造FAQ.pdf

    例如,某些材料可能因为环保或者质量控制的原因,只在特定的时间段内可以使用。在K/3系统中,如何有效地管理物料的有效期,确保生产过程中使用的都是有效期内的物料,是企业关注的重点之一。 **解决方法**: 1. **...

    通达信放量预警指标源码通达信指标公式源码.doc

    S1检查股票是否处于停牌状态,S2判断收盘价是否低于20元,S3则限制流通市值小于4亿。这些条件可以灵活调整,以适应不同的投资偏好。 综合以上条件,源码中的XG1变量将TJ1和TJ2结合,表示同时满足放量和45度角上升的...

    毕业就也之-----金山笔试题

    这段代码是关于组合和递归...这段代码主要展示了如何在限制时间内有效地处理组合问题,通过递归和位操作技巧,避免了直接计算组合数可能导致的大量计算。对于程序员来说,理解和掌握这些技术对于解决实际问题非常重要。

    Excel VBA实用技巧大全 附书源码

    04099判断单元格内是否输入了公式(之一) 04100判断单元格内是否输入了公式(之二) 04101判断工作表内是否有公式 04102判断某单元格区域是否为数组公式区域 04103判断工作表内是否有数组公式 04104判断单元格的...

    小阳憋大阳 通达信指标公式源码.doc

    A25和A26比较两次穿过零轴的间隔,如果最近的一次穿越是在更短的时间内发生的,那么A27会选取最近高点或低点的参考值。A28和A29则是对当前收盘价与前一日参考值的关系进行判断,看是否满足"小阳憋大阳"的形态条件。 ...

    计算机体系结构试题库-判断题.pdf

    4. **调和平均**:在计算机性能测量中,调和平均用于计算单位时间内机器可以执行的程序数量。 5. **指令集设计**:不能仅用典型程序来设计和优化指令集,需要考虑广泛的应用场景。 6. **流水线性能**:增加流水线的...

    钢铁行业周报:长材库存大幅累积,河北错峰限产延长.pdf

    股市行情回顾分析了钢铁板块在一段时间内的整体表现,而个股上周表现则具体到个别钢铁企业的股价变动。期市低开高走的走势,表明市场对钢材价格有着积极的预期。 钢铁企业的利润情况是投资者关注的焦点之一。报告中...

    语音端点检测算法

    通过比较相邻时间段的能量变化,可以判断语音活动状态。当能量显著上升或下降时,可能对应着语音的开始或结束。 2. 短时平均过零率:过零率是指信号在一定时间间隔内穿越零轴的次数。在语音信号中,高过零率通常与...

    通达信指标公式源码 冲击板底选股.doc

    `MAX(REF(C,TJB+1),C)/MIN(REF(C,TJB+1),C)`计算这段时间内的最高价与最低价之比,如果这个比例小于1.025,说明股价相对平稳;同时需要`TJB,确保时间窗口不超过6天。 4. `冲击板底`:这是最终的选股条件,使用`...

Global site tag (gtag.js) - Google Analytics