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`方法来改变一周的起始日。 下面...
写一个程序,输入-一个日期(年、月、日), 年份在1900-2050之间,做下列计算: (1) 计算明天的日期(年、月、日),输 出结果; (2) 输入一个天数(n) ,计算n天后的日 期; (3) 计算上述各个日期是星期几,并输出 (4)理解...
**原理**:如果日期1所在周的星期天和日期2所在周的星期天是同一天,那么这两个日期在同一周。 ```csharp public static bool IsInSameWeek1(DateTime dtS, DateTime dtE) { return ((dtE - new TimeSpan(Convert....
这意味着我们要编写一个函数,输入一个日期,然后返回该日期所在的星期的起始日期和结束日期。 函数`getAWeekTimeSlot()`就是实现这一功能的核心。它有两个参数: 1. `$gdate`:这是一个可选的字符串参数,用于...
这个函数通过以下步骤找到给定日期所在的星期一和星期天: 1. 使用`DATEDIFF(wk, 0, @tmpDate)`计算从1900年1月1日(日期0)到`@tmpDate`的星期数。 2. 将这个星期数传递给`DATEADD(wk, ... , 0)`,得到该日期所在...
文章中提到了一个非常实用的技术点:系统中星期的第一天(DATEFIRST)的设置可能影响到日期计算的结果。默认情况下,周一被视为一周的第一天,但用户可以通过修改DATEFIRST设置来改变这一默认行为,将任何一天设定为...
Java 中用 Calendar 类计算周和周的起始日期时,需要了解 Calendar 类的使用方法和日期计算的逻辑。在 Java 中,Calendar 类提供了计算周和周的起始日期的方法。 首先,需要了解 Calendar 类的 setFirstDayOfWeek()...
输入任意日期(年月日),根据Zeller公式,利用matlab来计算是星期几
- **日历周的计算**: 日历周(CW)是从一年中的第一个星期一开始计算的,如果一年的第一天是星期一至星期三,则该周计入前一年的日历周内;如果是星期四至星期日,则计入新年的第一周。 - **CW1的特殊情况**: 如果...
在C语言编程中,设计一个程序来实现标题和描述中提到的功能,即通过菜单选择输入年、月、日,然后计算出所选日期距离当前日期的天数以及那天是星期几,是一项常见的日期处理任务。这涉及到对日期的数学运算、循环...
这个属性返回一个枚举值,代表一周中的哪一天。为了获取易于理解的文本形式,我们可以将枚举值转换为字符串: ```csharp string dayOfWeek = specificDate.DayOfWeek.ToString(); ``` `DayOfWeek`枚举有以下成员:...
### SQL Server中的日期计算方法详解 在SQL Server中进行日期计算是数据库操作中常见的需求之一。本文将深入探讨SQL Server中处理日期的各种方法,并通过具体的示例来展示这些方法的实际应用。 #### 1. DATEADD 和...
这个特定的项目,"根据任意输入的日期,得出星期几",是一个实用的小程序,它能够帮助用户查询任何给定日期是星期几。这个功能在日常生活中非常有用,比如在规划日程或者回忆过去特定日期的事件时。 VB提供了丰富的...
在这个特定的场景中,我们需要使用C语言来编写一个程序,根据给定的日期,判断这一天是“晒网”还是“打鱼”,这可以理解为一个趣味性的日期分析应用。 首先,我们需要了解C语言中的日期处理。在C标准库中,`...
在JavaScript中,获取给定日期所在月份的第一个星期一或者最后一个特定星期几是一项常见的任务,尤其在数据处理、日历应用或者时间相关的编程中。这里我们将深入探讨如何实现这个功能,并结合实际示例来理解相关代码...
根据给定文件的信息,本文将详细解析如何使用Java语言及单例模式来计算并列出一年中的所有周及其对应的时间段,同时也会展示如何获取当前日期及其所在周。 ### 一、单例模式简介 单例模式是一种常用的软件设计模式...
在“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 ...