• 使用java的Calendar对象获得当前日期的上几个度开始、结束时间


    思路:

    先获得当前季度的开始和结束日期,在当前日期的基础上往前推3个月即上个季度的开始和结束日期

    /**
    	 * @param flag true:开始日期;false:结束日期
    	 * @return
    	 */
    	public static String getLastQuarterTime(boolean flag){
    		SimpleDateFormat shortSdf = new SimpleDateFormat("yyyy-MM-dd");
    		SimpleDateFormat longSdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    		
    		String resultDate="";
    		Date now = null;
    		try {
    			Calendar calendar = Calendar.getInstance();
    			int currentMonth = calendar.get(Calendar.MONTH) + 1;
    			//true:开始日期;false:结束日期
    			if(flag){
    				if (currentMonth >= 1 && currentMonth <= 3)
    					calendar.set(Calendar.MONTH, 0);
    				else if (currentMonth >= 4 && currentMonth <= 6)
    					calendar.set(Calendar.MONTH, 3);
    				else if (currentMonth >= 7 && currentMonth <= 9)
    					calendar.set(Calendar.MONTH, 6);
    				else if (currentMonth >= 10 && currentMonth <= 12)
    					calendar.set(Calendar.MONTH, 9);
    				calendar.set(Calendar.DATE, 1);
    				
    				now = longSdf.parse(shortSdf.format(calendar.getTime()) + " 00:00:00");
    			}else{
    				if (currentMonth >= 1 && currentMonth <= 3) {
    					calendar.set(Calendar.MONTH, 2);
    					calendar.set(Calendar.DATE, 31);
    	            } else if (currentMonth >= 4 && currentMonth <= 6) {
    	            	calendar.set(Calendar.MONTH, 5);
    	            	calendar.set(Calendar.DATE, 30);
    	            } else if (currentMonth >= 7 && currentMonth <= 9) {
    	            	calendar.set(Calendar.MONTH, 8);
    	            	calendar.set(Calendar.DATE, 30);
    	            } else if (currentMonth >= 10 && currentMonth <= 12) {
    	            	calendar.set(Calendar.MONTH, 11);
    	            	calendar.set(Calendar.DATE, 31);
    	            }
    				now = longSdf.parse(shortSdf.format(calendar.getTime()) + " 23:59:59");
    			}
    			calendar.setTime(now);// 设置日期
    			calendar.add(Calendar.MONTH, -3);
    			resultDate = longSdf.format(calendar.getTime());
    			
    		} catch (Exception e) {
    			;
    		}
    		return resultDate;
    	}
    

      

  • 相关阅读:
    C#通过正则表达式统计词频的一个方法
    本地服务器远程连接其它数据库
    拼字符串成为时间,和两个计算时间点的中间值
    删除文件夹里的图片,打印删除日志
    行转列SQL语句
    加载出一个有层次的下拉框
    查询结果列传行
    【Java&Python双管齐下复健002】回文数和反转数
    【Java&Python双管齐下复健001】冒泡排序和质数判断
    【LeetCode记录】初级算法:数组之删除排序数组中的重复项
  • 原文地址:https://www.cnblogs.com/qadada/p/4614692.html
Copyright © 2020-2023  润新知