`
zhddd
  • 浏览: 9006 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Java之美_获取某一时间段特定星期几的日期

阅读更多
/**
 * 获取某一时间段特定星期几的日期
 * @author finder.zhou
 */
public class WeekDayUtil {
	public static void main(String[] args) {
        getDates("2013-04-01", "2014-04-14","星期一|星期二|星期日");
    }

	/**
	 * 获取某一时间段特定星期几的日期
	 * @param dateFrom 开始时间
	 * @param dateEnd 结束时间
	 * @param weekDays 星期
	 * @return 返回时间数组
	 */
    public static String[] getDates(String dateFrom, String dateEnd, String weekDays) {
        long time = 1l;
        long perDayMilSec = 24 * 60 * 60 * 1000;
        List<String> dateList = new ArrayList<String>();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        //需要查询的星期系数
        String strWeekNumber = weekForNum(weekDays);
        try {
			dateFrom = sdf.format(sdf.parse(dateFrom).getTime() - perDayMilSec);
			while (true) {
					time = sdf.parse(dateFrom).getTime();
					time = time + perDayMilSec;
					Date date = new Date(time);
					dateFrom = sdf.format(date);
					if (dateFrom.compareTo(dateEnd) <= 0) {
						//查询的某一时间的星期系数
						Integer weekDay = dayForWeek(date);                    
						//判断当期日期的星期系数是否是需要查询的
						if (strWeekNumber.indexOf(weekDay.toString())!=-1) {
							System.out.println(dateFrom);
							dateList.add(dateFrom);
						}
					} else {
						break;
					}
			}
		} catch (ParseException e1) {
			e1.printStackTrace();
		}
        String[] dateArray = new String[dateList.size()];
        dateList.toArray(dateArray);
        return dateArray;
    }

    //等到当期时间的周系数。星期日:1,星期一:2,星期二:3,星期三:4,星期四:5,星期五:6,星期六:7
    public static Integer dayForWeek(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        return calendar.get(Calendar.DAY_OF_WEEK);
    }
    
    /**
     * 得到对应星期的系数  星期日:1,星期一:2,星期二:3,星期三:4,星期四:5,星期五:6,星期六:7
     * @param weekDays 星期格式  星期一|星期二
     */
    public static String weekForNum(String weekDays){
    	//返回结果为组合的星期系数
    	String weekNumber = "";
    	//解析传入的星期
    	if(weekDays.indexOf("|")!=-1){//多个星期数
    		String []strWeeks = weekDays.split("\\|");
    		for(int i=0;i<strWeeks.length;i++){
    			weekNumber = weekNumber + "" + getWeekNum(strWeeks[i]).toString();
    		}
    	}else{//一个星期数
    		weekNumber = getWeekNum(weekDays).toString();
    	}
    	
    	return weekNumber;
    	
    }
    
    //将星期转换为对应的系数  星期日:1,星期一:2,星期二:3,星期三:4,星期四:5,星期五:6,星期六:7
    public static Integer getWeekNum(String strWeek){
    	Integer number = 1;//默认为星期日
    	if("星期日".equals(strWeek)){
    		number = 1;
    	}else if("星期一".equals(strWeek)){
    		number = 2;
    	}else if("星期二".equals(strWeek)){
    		number = 3;
    	}else if("星期三".equals(strWeek)){
    		number = 4;
    	}else if("星期四".equals(strWeek)){
    		number = 5;
    	}else if("星期五".equals(strWeek)){
    		number = 6;
    	}else if("星期六".equals(strWeek)){
    		number = 7;
    	}else{
    		number = 1;
    	}
    	return number;
    }

}
0
0
分享到:
评论
1 楼 liuxuebing2010 2016-04-05  
如果想计算日期段内有几个星期一,日期段的最后一天是星期一的话,计算的次数少了1次

相关推荐

    获取某一时间段特定星期几的日期

    获取某一时间段特定星期几的日期。如,查询2011-01-01到2011-02-02时间内所有星期一、星期三的对应日期。

    java 显示某年某月某一周的信息

    在Java编程中,显示某年某月某一周的信息涉及到日期和时间处理,这是Java核心库中的重要部分。Java提供了一系列的类和方法来处理日期、时间以及周、月等概念,主要集中在`java.time`包下。下面我们将深入探讨如何...

    java根据日期计算年龄和星期

    在Java中处理日期时,经常需要根据特定的日期来计算出年龄或者确定该日期是星期几。这对于开发涉及日期处理的应用程序非常实用。本文将详细介绍如何使用Java内置类如`SimpleDateFormat`、`Calendar`等来进行这些操作...

    java 采用单例模式计算当年有多少个周,并列出所有周以及每一个周所对应的时间段(内含注释)

    根据给定文件的信息,本文将详细解析如何使用Java语言及单例模式来计算并列出一年中的所有周及其对应的时间段,同时也会展示如何获取当前日期及其所在周。 ### 一、单例模式简介 单例模式是一种常用的软件设计模式...

    java 采用单例模式计算当年一共有多少个周,并列出所有周和每一周所对应的时间段(内含注释)

    综上所述,这段代码主要实现了使用单例模式计算一年中周数的功能,并且能够输出每个周的起始和结束日期,同时也提供了获取当前日期、当前周数及当前星期的方法。这对于需要进行日期统计的应用非常有用。

    操作日期的java包

    7. **比较和查询**:可以轻松比较两个日期时间对象,或者查询某个日期时间是否在另一日期时间之前或之后,还可以获取某个日期的星期几、一年中的第几天等信息。 8. **ISO-8601兼容**:Joda-Time完全兼容ISO-8601日...

    MyDate_java_

    在Java编程语言中,日期和时间的处理是常见的任务之一。`MyDate_java_` 这个项目的标题表明它是一个关于处理日期的程序,能够输出指定日期前后的任意天数。这个程序可能对开发者在计算日期差、进行日历操作或者时间...

    java 获取年月日的代码

    在Java编程中,获取当前日期和时间是非常常见的需求之一。在给定的代码片段中,我们能够看到一个简单的实现方式来获取当前的年、月、日以及时间等信息。下面我们将对这段代码进行详细解析,并深入探讨其背后涉及的...

    java实验二.doc

    5. 对象和类:在Java中,`Calendar`类是一个重要的日期/时间API,可以获取和设置日期信息。在第一个实验任务中,`Calendar`对象用于获取年份、月份的最大天数以及星期信息。`GregorianCalendar`是`Calendar`的一个...

    java时间操作函数汇总

    这段代码通过设置指定的周数和一周的第一天为星期一,来计算出这一年第一周的起始日期。 #### 五、`add()`和`roll()`的用法 这两个方法都可以用来改变`Calendar`对象中的某个字段的值,但它们的处理方式有所不同。...

    获取当天是星期几的网页源代码.zip

    标题 "获取当天是星期几的网页源代码.zip" 暗示了这是一个包含用于确定当前日期是星期几的网页编程代码的压缩包。这可能是用HTML、CSS和JavaScript或者某种服务器端语言(如PHP、Python或Java)编写的。描述中的内容...

    关于日期计算的java代码

    这段代码首先设置了 `Calendar` 的年份和周数,并将星期一设为一周的开始,然后获取该周的第一天和最后一天的日期。 #### 方法二:使用 `java.time` 包下的类 ```java import java.time.DayOfWeek; import java....

    java:采用单例模式计算全年有多少个周,并列出所有周和每一周所对应的时间段(内含注释)

    周期性日期计算通常涉及到如何确定一年中有多少个完整的周以及每个周的具体时间段。 **代码示例**: ```java public void init() { // 初始化起始和结束日期 Calendar c_begin = new GregorianCalendar(); ...

    java万年历+源码

    Java万年历是一种常见的编程示例,用于展示日期和时间的处理。在这个例子中,我们看到的`java日历`标签表明我们将讨论Java中的日期和时间API,特别是`java.util.Calendar`类。`TestCalendar.java`是源代码文件,很...

    Java计算工作日

    通过以上步骤,我们可以编写一个高效的Java程序来计算给定时间段内按照特定间隔的工作日。这个程序可以根据实际情况进行扩展,例如考虑不同的工作日定义(比如某些国家周日不休息)或添加动态获取节假日的接口(如...

    java代码-以当前时间获取上周、本周、下周、下下周的结束时间

    在Java编程中,获取特定时间段的开始和结束时间是一项常见的任务,特别是在数据分析和报表生成等场景。本示例代码着重于根据当前时间获取上周、本周、下周以及下下周的结束时间。下面我们将深入探讨实现这一功能所...

    java周算法.pdf

    这个类包含了一系列静态方法,用于计算给定日期所在的周数、获取特定年份的周总数,以及获取某年某周的第一天和最后一天。 1. `getWeekOfYear(Date date)` 方法:这个方法接收一个 `Date` 对象作为参数,然后使用 `...

    如何获取本周,本月,本日的开始时间和结束时间的时间戳.pdf

    在Java编程中,获取特定时间段(如本日、本周、本月)的开始和结束时间戳对于数据分析、日志记录或者任务调度等场景非常有用。以下是一个关于如何在Java中实现这个功能的详细解释: 首先,我们需要了解Java中处理...

    日历控件 星期、日期、时间(秒在走动)源码

    这个特定的压缩包文件提供了“星期、日期、时间(秒在走动)”的源码,这意味着它包含了实现一个实时更新的时间显示功能的代码。这种控件通常用于应用程序,如日程管理软件、时钟应用或任何需要用户与日期和时间进行...

Global site tag (gtag.js) - Google Analytics