java中判断当前日期是星期几

  在券商实际开发过程中,在做定投的时候,如果选择定投周期为周,那么就需要判断当前日期处于周几,如果处于周一-周五,正常扣款,如果处于星期天,延迟到下一周的交易日进行扣款。

使用java.util.Calendar进行当前日期的周几判断,是日历操作的工具类。

String debitDate="";//扣款日期
		Date date=null;
		/**
		 * 计算下一个扣款日
		 * 0-每周  1-每月
		 */
		String today=DateUtils.getNowDateTime();//获取今天的日期
	    //开始日期大于当前,取开始日期进行比较,否则取当天进行比较
		if(beginDate.compareTo(today) > 0)
		{
			SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
			date = format.parse(beginDate);
		}
		else
		{
			date = new Date();
		}
		if ("0".equals(surelyType)) {
			//每周
			//如果扣款日期大于今天,则取本周的
			//如果扣款日期小于等于今天,则取下个周
			Calendar cal = Calendar.getInstance(Locale.CHINA);
			cal.setTime(date);
			cal.setFirstDayOfWeek(Calendar.MONDAY);//将每周第一天设为星期一,默认是星期天
			int week = cal.get(Calendar.DAY_OF_WEEK)-1;//获取指定日期的周几
			if(week==0)week=7;
			if (Integer.valueOf(surelyDate) >= week) {//如果周几类型大于等于当前周几,去当前日期
				cal.set(Calendar.DAY_OF_WEEK, Integer.valueOf(surelyDate) + 1);//星期
			}else{
				cal.add(Calendar.WEEK_OF_MONTH, 1);//周数加1,即下周
				cal.set(Calendar.DAY_OF_WEEK, Integer.valueOf(surelyDate) + 1);//星期
			}
			debitDate = DateHelper.formatDate(cal.getTime(), "yyyy-MM-dd");
		}else if("1".equals(surelyType)){
			//每月
			//如果扣款日大于今天,则去本月的
			//如果扣款日小于今天,则去下个月
			if (surelyDate.length()==1) {
				surelyDate="0"+surelyDate;
			}
			if (Integer.valueOf(surelyDate)>=Integer.valueOf(DateHelper.formatDate(date, "dd"))) {
				debitDate=DateHelper.formatDate(date, "yyyy-MM")+"-"+surelyDate;
			}else{
				debitDate = DateHelper.formatDate(DateUtils.subMonth(date, 1), "yyyy-MM") + "-" + surelyDate;
			}
		}

这是只判断了周和月的定投,其中:

surelyType:定投类型0-每周 1-每月

surelyDate:定投日期:如果定投类型是每周,那么定投日期值范围为:1-5,如果定投类型为每月,那么定投日期值范围为:1-28

beginDate:开始日期:格式yyyyMMdd hh:mm:ss

这边计算出下一个扣款日后,去柜台获取当前扣款日的交易日。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
判断当前日期是否是节假日、双休日,可以使用Java 8java.time包的类和方法。具体可以按照以下步骤进行操作: 1. 首先,需要创建一个LocalDate对象表示当前日期,可以使用now()方法获取当前日期: ```java LocalDate today = LocalDate.now(); ``` 2. 判断当前日期是否是节假日,可以使用第三方API或者自己实现一个判断方法。这里以自己实现为例,假设节假日包括元旦节、春节、清明节、劳动节、端午节、秋节、国庆节。可以定义一个方法,判断当前日期是否在这些节假日之一: ```java public static boolean isHoliday(LocalDate date) { int month = date.getMonthValue(); int day = date.getDayOfMonth(); if ((month == 1 && day == 1) || // 元旦节 (month == 2 && day >= 4 && day <= 10) || // 春节 (month == 4 && day >= 4 && day <= 6) || // 清明节 (month == 5 && day >= 1 && day <= 3) || // 劳动节 (month == 6 && day >= 12 && day <= 14) || // 端午节 (month == 9 && day >= 19 && day <= 21) || // 秋节 (month == 10 && day >= 1 && day <= 7)) { // 国庆节 return true; } return false; } ``` 3. 判断当前日期是否是双休日,可以使用DayOfWeek枚举类的值来判断。如果当前日期星期六或星期日,则认为是双休日。可以使用getDayOfWeek()方法获取当前日期星期几: ```java public static boolean isWeekend(LocalDate date) { DayOfWeek dayOfWeek = date.getDayOfWeek(); return dayOfWeek == DayOfWeek.SATURDAY || dayOfWeek == DayOfWeek.SUNDAY; } ``` 4. 最后,可以通过调用上面定义的方法来判断当前日期是否是节假日、双休日: ```java if (isHoliday(today)) { System.out.println("今天是节假日!"); } else if (isWeekend(today)) { System.out.println("今天是双休日!"); } else { System.out.println("今天是工作日!"); } ``` 需要注意的是,判断节假日需要根据具体情况调整,例如春节日期会根据农历而有所不同。同时,如果需要判断其他国家或地区的节假日,也需要根据当地情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值