「java判断补班日期」JAVA输入一个日期判断是一年的第几天
本篇文章给大家谈谈java判断补班日期,以及JAVA输入一个日期判断是一年的第几天对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、JAVA日期的判断
- 2、如何用java代码判断工作日
- 3、Java编写 求某天之后的多少个工作日是哪天?
- 4、如何在Java里面用if语句判断时间段显示的考勤班次。如:24小时(8个小时为一班),
JAVA日期的判断
import java.text.*;
import java.util.*;
public class isWeekSame
{
//方法名称:isSameDate(String date1,String date2)
//功能描述:判断date1和date2是否在同一周
//输入参数:date1,date2
//输出参数:
//返 回 值:false 或 true
//其它说明:主要用到Calendar类中的一些方法
public static boolean isSameDate(String date1,String date2)
{
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date d1 = null;
Date d2 = null;
try
{
d1 = format.parse(date1);
d2 = format.parse(date2);
}
catch(Exception e)
{
e.printStackTrace();
}
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal1.setTime(d1);
cal2.setTime(d2);
int subYear = cal1.get(Calendar.YEAR)-cal2.get(Calendar.YEAR);
//subYear==0,说明是同一年
if(subYear == 0)
{
if(cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
return true;
}
//例子:cal1是"2005-1-1",cal2是"2004-12-25"
//java对"2004-12-25"处理成第52周
// "2004-12-26"它处理成了第1周,和"2005-1-1"相同了
//大家可以查一下自己的日历
//处理的比较好
//说明:java的一月用"0"标识,那么12月用"11"
else if(subYear==1 cal2.get(Calendar.MONTH)==11)
{
if(cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
return true;
}
//例子:cal1是"2004-12-31",cal2是"2005-1-1"
else if(subYear==-1 cal1.get(Calendar.MONTH)==11)
{
if(cal1.get(Calendar.WEEK_OF_YEAR) == cal2.get(Calendar.WEEK_OF_YEAR))
return true;
}
return false;
}
public static void main(String[] args)
{
// TODO Auto-generated method stub
//测试1
boolean a = isSameDate("2005-1-1","2005-1-3");
if(a)
{
System.out.println("2005-1-1和2005-1-3是同一周!");
}
else
{
System.out.println("2005-1-1和2005-1-3不是同一周!");
}
//测试2
boolean b = isSameDate("2005-1-1","2004-12-25");
if(b)
{
System.out.println("2005-1-1和2004-12-25是同一周!");
}
else
{
System.out.println("2005-1-1和2004-12-25不是同一周!");
}
boolean c = isSameDate("2004-12-25","2005-1-1");
if(c)
{
System.out.println("2004-12-25和2005-1-1是同一周!");
}
else
{
System.out.println("2004-12-25和2005-1-1不是同一周!");
}
//测试3
boolean d = isSameDate("2005-1-1","2004-12-26");
if(d)
{
System.out.println("2005-1-1和2004-12-26是同一周!");
}
else
{
System.out.println("2005-1-1和2004-12-26不是同一周!");
}
boolean e = isSameDate("2004-12-26","2005-1-1");
if(e)
{
System.out.println("2004-12-26和2005-1-1是同一周!");
}
else
{
System.out.println("2004-12-26和2005-1-1不是同一周!");
}
}
}
你可以参考下。。
如何用java代码判断工作日
正常的工作日根据 Calendar 就可以,国庆,春节等你可能要根据国务院的通知,通过配置文件等才能处理。算不出来的。要是能算出来,你就是国务院了。
Java编写 求某天之后的多少个工作日是哪天?
我从自己的工具类中使用了几个方法,一并贴出来供楼主参考:
/**
* 判断当前日期为星期几
* @param date
* @return
*/
public static int dayOfWeek(Date date){
Calendar aCalendar = Calendar.getInstance();
aCalendar.setTime(date);
int weekDay = aCalendar.get(Calendar.DAY_OF_WEEK);
return weekDay;
}
/**
* 获取指定日期指定天数后的日期
* @param date 指定日期
* @param index 指定天数
* @param flag 是否将时分秒归0
* @return
*/
public static Date getNextDate(Date date, int index, boolean flag){
Calendar cal = Calendar.getInstance();
cal.setTime(date);// 获得当前时间
if(flag){
// 日期不变,把时间设定为00:00:00
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 00);
cal.set(Calendar.SECOND, 00);
}
cal.set(Calendar.DATE, cal.get(Calendar.DATE) + index);
return cal.getTime();
}
public static Date getDate(Date currentDate,int days){
/*
* 1,根据传入日期获取下一天日期
* 2,判断下一天日期是否为工作日,如果是则设置下一次循环日期为此日期
* 如果不为工作日,为周6,日期前进2天,为周天前进1天
* 3, 获取指定天数后的工作日
*/
Date date = currentDate;
/* 设置循环次数
* 如果含最后一天则循环 days + 1 天,不需要含最后一天,则循环 days次
* */
for(int i = 0; i days + 1; i++){
Date nextDate = getNextDate(date,1,false); //获取下一天的日期
int weekDay = dayOfWeek(nextDate); //下一天日期为星期几
if(weekDay == 1){ //为星期六
date = getNextDate(date,2,false);
}else if(weekDay == 6){ //为星期天
date = getNextDate(date,3,false);
}else{
date = nextDate;
}
}
return date;
}
虽然这个满足楼主的需求,但是肯定有更简单的算法,现在要出门,来不及想了,先用用。
这个问题的思路我现在想到的就是判断下一日期是否为工作日,为周6怎样处理,为周日怎样处理。希望回来的时候能看到更好的计算方法(good luck)。
楼主应该建立自己的常用工具类库,如日期,图片,字符串等等的常用处理(注意方法的复用),这样开发的效率会很高。
如何在Java里面用if语句判断时间段显示的考勤班次。如:24小时(8个小时为一班),
Calendar cal = Calendar.getInstance();
int hour = cal.get(Calendar.HOUR_OF_DAY);
if (hour = 0 hour 8){
System.out.println("1班");
} else if(hour 16) {
System.out.println("2班");
} else {
System.out.println("3班");
}
你试试这样行不行
关于java判断补班日期和JAVA输入一个日期判断是一年的第几天的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。