`
f543711700
  • 浏览: 322572 次
  • 性别: 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;
	}
	
	
}




分享到:
评论

相关推荐

    计算n天数后的日期情况

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

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

    * @param int $weekStart 一周以星期一还是星期天开始,0为星期天,1为星期一 * @return array 数组array( "开始日期 ", "结束日期"); */ function getAWeekTimeSlot($gdate = '', $weekStart = 0) { if (! $...

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

    一、给定一个日期值,求出此日期所在星期的星期一和星期天的日期数据 例如给定一个日期 2010-09-01,求出它所在星期的星期一是2010-08-30,星期天是2010-09-05 Function创建如下: 代码如下: USE [MSSQL] GO SET ANSI...

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

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

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

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

    c++实现时间与日期计算

    (4) 编写时间和日期的派生类CDati,完成日期与时间的联合设置、运算、比较等功能,要求该派生类可以完成:日期时间加天数或时间等于新的日期时间,日期时间减天数或等于新的日期时间,两个日期时间相减等于天数或...

    14.第十四章 函数进阶.txt

    计算日期A为星期几,先找一个知道为星期几的参照日期B,通过计算A和B的相差天数,就可计算出日期A星期几。 例:日期综合运算。 #include #include /*日期结构体*/ struct date { int year; int month; int...

    给定某年某月,输出该月日历

    继给定两个日子计算相差天数和给定某个日子,返回在一周的第几天,接下来还有一个给定某年某月,输出该月日历; 其实思想很简单,都是与1900-1-1相减,这样得到每月的第一天星期几,这样便于输出第一行; 接下来将...

    如何计算任意一天是星期几

    当给定年月日,如何计算任意一天是星期几?

    Python简单计算给定某一年的某一天是星期几示例

    dict = {1: "星期一", 2: "星期二", 3: "星期三", 4: "星期四", 5: "星期五", 6: "星期六", 0: "星期天"} while 1: y=int(input("请输入年份")) m=int(input("请输入月份")) d=int(input("请输入天")) if

    汇编 万年历程序 日期输入

    编写汇编语言源程序实现从键盘上输入1959至2049年中的某一日,计算并输出该日是这一年的第几天以及星期几

    统计周期内黑色星期五个数

    黑色星期五是指某天既是13号又是星期五。13号在星期五的情况比在...给出n年的一个周期,要求计算从1900年1月1日至1900+n-1年12月31日中13号落在周一到周日的次数,n为正整数且不大于400,(已知1900年1月1日是星期一)

    DateFormatUtils时间获取及格式化工具类

    查询距离当前系统时间的本周星期一、星期日的天数的日期 获取系统当前 n天后 开始时间 获取系统当前 n天后 结束时间 按照指定格式,格式化指定时间 获取当前日期 获取给定日期N天后的日期 获取某月开始时间 获取本月...

    week-of-month:给出给定日期的一个月的一周

    一个月中的第几周 每月的星期是一个用有用的方法扩展Date和Time类的瑰宝。 在以日历安排的形式准确显示星期几的同时,... 考虑到星期一是一周的第一天,这将进行所有操作。 用法 返回月份中的日期,就像它们显示在日历

    python实现某年某月是星期几

    该程序主要是完成判断某天是周几,输入一天的日期(2020-2-2)这种格式,会判断该天是周几,如果日期格式不对,会显示输入错误。

    万年历.c 基于C语言的简单万年历程序

    getWeekDay函数: 给定年月日,计算该日期是星期几,返回0表示星期日,1表示星期一,以此类推。 printDay函数: 输入年月日,打印该日期是星期几。 printMonth函数: 输入年份和月份,打印指定月份的月历,包括日期和...

    python根据日期返回星期几的方法

    这个函数给定日期,输出星期几,至于0是星期一还是星期天,这和时区有关,反正我这里是0表示星期一 import time,datetime def get_week_day(date): week_day_dict = { 0 : '星期一', 1 : '星期二', 2 : '星期三...

    mysql的日期和时间函数

    mysql的日期和时间函数 这里是一个使用日期函数的例子。下面的查询选择所有 date_col 值在最后 30 天内的记录。 mysql> SELECT something FROM tbl_name WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) ...

Global site tag (gtag.js) - Google Analytics