`
f543711700
  • 浏览: 326303 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

给定一个日期,计算这个日期所在周的星期一和星期天

 
阅读更多
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;

public class TestWeek {

	private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
	
	
	public static void main(String[] args) throws ParseException {
		
		String dateStr = "2011-11-1";
		
		String[] startAndEndDateOfWeek = getWeekStartAndEnd(dateStr);
		System.out.println("本周开始日期是:" + startAndEndDateOfWeek[0]);
		System.out.println("本周结束日期是:" + startAndEndDateOfWeek[1]);
		
		String[] aaa = TimeZone.getAvailableIDs();
		for (String string : aaa) {
//			System.out.println(string);
		}
	}
	
	
	private static String[] getWeekStartAndEnd(String nowDateStr) {
		String[] a = null;
		try {
			Date nowDate = sdf.parse(nowDateStr);
			
			Calendar nowCalendar = Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00"));
//			nowCalendar.setFirstDayOfWeek(Calendar.MONDAY);
			nowCalendar.setTime(nowDate);
			
			//将开始日历和结束日历都初始化为当前选择日期
			Calendar startCalendar = Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00"));
//			startCalendar.setFirstDayOfWeek(Calendar.MONDAY);
			startCalendar.setTime(nowDate);
			
			Calendar endCalendar = Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00"));
//			endCalendar.setFirstDayOfWeek(Calendar.MONDAY);
			endCalendar.setTime(nowDate);
			
			int sourceDayOfWeek = nowCalendar.get(Calendar.DAY_OF_WEEK);
			if(sourceDayOfWeek == Calendar.MONDAY) {//星期一(开始日历不变,结束日历加6天)
				
				endCalendar.add(Calendar.DAY_OF_MONTH, 6);
				
			} else if(sourceDayOfWeek == Calendar.TUESDAY) {//星期二(开始日历减1天,结束日历加5天)
				
				startCalendar.add(Calendar.DAY_OF_MONTH, -1);
				endCalendar.add(Calendar.DAY_OF_MONTH, 5);
				
			} else if(sourceDayOfWeek == Calendar.WEDNESDAY) {//星期三(开始日历减2天,结束日历加4天)
				
				startCalendar.add(Calendar.DAY_OF_MONTH, -2);
				endCalendar.add(Calendar.DAY_OF_MONTH, 4);
				
			} else if(sourceDayOfWeek == Calendar.THURSDAY) {//星期四(开始日历减3天,结束日历加3天)
				
				startCalendar.add(Calendar.DAY_OF_MONTH, -3);
				endCalendar.add(Calendar.DAY_OF_MONTH, 3);
				
			} else if(sourceDayOfWeek == Calendar.FRIDAY) {//星期五(开始日历减4天,结束日历加2天)
				
				startCalendar.add(Calendar.DAY_OF_MONTH, -4);
				endCalendar.add(Calendar.DAY_OF_MONTH, 2);
				
			} else if(sourceDayOfWeek == Calendar.SATURDAY) {//星期六(开始日历减5天,结束日历加1天)
				
				startCalendar.add(Calendar.DAY_OF_MONTH, -5);
				endCalendar.add(Calendar.DAY_OF_MONTH, 1);
				
			} else if(sourceDayOfWeek == Calendar.SUNDAY) {//星期天(开始日历减6天,结束日历不变)
				
				startCalendar.add(Calendar.DAY_OF_MONTH, -6);
				
			} else {
				throw new RuntimeException("The date out of a week...");
			}
			
			a = new String[2];
			System.out.println(startCalendar.getTime());
			a[0] = sdf.format(startCalendar.getTime());
			a[1] = sdf.format(endCalendar.getTime());
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		return a;
	}
	
	
}




分享到:
评论

相关推荐

    计算周次(未规定每年第一天是属于第一周)

    例如,在Python的`dateutil`库中,我们可以创建一个`rrule`对象来定义星期的起点,然后使用这个规则来计算日期所在的周次。在Java中,我们可以使用`Calendar`类的`setFirstDayOfWeek`方法来改变一周的起始日。 下面...

    计算n天数后的日期情况

    写一个程序,输入-一个日期(年、月、日), 年份在1900-2050之间,做下列计算: (1) 计算明天的日期(年、月、日),输 出结果; (2) 输入一个天数(n) ,计算n天后的日 期; (3) 计算上述各个日期是星期几,并输出 (4)理解...

    一行代码判断两个日期是否在同一周

    **原理**:如果日期1所在周的星期天和日期2所在周的星期天是同一天,那么这两个日期在同一周。 ```csharp public static bool IsInSameWeek1(DateTime dtS, DateTime dtE) { return ((dtE - new TimeSpan(Convert....

    php计算给定日期所在周的开始日期和结束日期示例

    这意味着我们要编写一个函数,输入一个日期,然后返回该日期所在的星期的起始日期和结束日期。 函数`getAWeekTimeSlot()`就是实现这一功能的核心。它有两个参数: 1. `$gdate`:这是一个可选的字符串参数,用于...

    SQL 判断给定日期值(或时间段)所在星期的星期一和星期天的日期

    这个函数通过以下步骤找到给定日期所在的星期一和星期天: 1. 使用`DATEDIFF(wk, 0, @tmpDate)`计算从1900年1月1日(日期0)到`@tmpDate`的星期数。 2. 将这个星期数传递给`DATEADD(wk, ... , 0)`,得到该日期所在...

    SQL Server各种日期计算

    文章中提到了一个非常实用的技术点:系统中星期的第一天(DATEFIRST)的设置可能影响到日期计算的结果。默认情况下,周一被视为一周的第一天,但用户可以通过修改DATEFIRST设置来改变这一默认行为,将任何一天设定为...

    Java中用Calendar类计算周和周的起始日期

    Java 中用 Calendar 类计算周和周的起始日期时,需要了解 Calendar 类的使用方法和日期计算的逻辑。在 Java 中,Calendar 类提供了计算周和周的起始日期的方法。 首先,需要了解 Calendar 类的 setFirstDayOfWeek()...

    用来计算任意日期是星期几

    输入任意日期(年月日),根据Zeller公式,利用matlab来计算是星期几

    S7-SCL - 可用于从给定日期或者 CPU 硬件时钟的当前日期确定日历日和日历周的工具

    - **日历周的计算**: 日历周(CW)是从一年中的第一个星期一开始计算的,如果一年的第一天是星期一至星期三,则该周计入前一年的日历周内;如果是星期四至星期日,则计入新年的第一周。 - **CW1的特殊情况**: 如果...

    1.提供菜单方式选择月日, 2.输入年份、月份、日期,计算得到的是这一天据今天有多少天,星期几;

    在C语言编程中,设计一个程序来实现标题和描述中提到的功能,即通过菜单选择输入年、月、日,然后计算出所选日期距离当前日期的天数以及那天是星期几,是一项常见的日期处理任务。这涉及到对日期的数学运算、循环...

    C#根据日期计算星期几,根据月份计算天数

    这个属性返回一个枚举值,代表一周中的哪一天。为了获取易于理解的文本形式,我们可以将枚举值转换为字符串: ```csharp string dayOfWeek = specificDate.DayOfWeek.ToString(); ``` `DayOfWeek`枚举有以下成员:...

    SQL Server各种日期计算方法

    ### SQL Server中的日期计算方法详解 在SQL Server中进行日期计算是数据库操作中常见的需求之一。本文将深入探讨SQL Server中处理日期的各种方法,并通过具体的示例来展示这些方法的实际应用。 #### 1. DATEADD 和...

    根据任意输入的日期,得出星期几(2KB)...

    这个特定的项目,"根据任意输入的日期,得出星期几",是一个实用的小程序,它能够帮助用户查询任何给定日期是星期几。这个功能在日常生活中非常有用,比如在规划日程或者回忆过去特定日期的事件时。 VB提供了丰富的...

    任意天日期计算

    在这个特定的场景中,我们需要使用C语言来编写一个程序,根据给定的日期,判断这一天是“晒网”还是“打鱼”,这可以理解为一个趣味性的日期分析应用。 首先,我们需要了解C语言中的日期处理。在C标准库中,`...

    js获取本月的第一个星期一

    在JavaScript中,获取给定日期所在月份的第一个星期一或者最后一个特定星期几是一项常见的任务,尤其在数据处理、日历应用或者时间相关的编程中。这里我们将深入探讨如何实现这个功能,并结合实际示例来理解相关代码...

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

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

    C 代码 确定与给定日期对应的星期几.rar

    在“C 代码 确定与给定日期对应的星期几.rar”这个压缩包中,包含的是用C语言编写的源码,用于解决一个实际的问题:根据输入的日期确定是星期几。这个功能在很多应用中都很实用,例如日历程序或者时间管理工具。 ...

    给定一个日子,返回是一周的第几天

    case 0: //今天是星期一... printf("Today是一周的第2天\n"); break; case 1: //今天是星期二...以此类推 printf("Today是一周的第3天\n"); break; case 2: printf("Today是一周的第4天\n"); break; case ...

Global site tag (gtag.js) - Google Analytics