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;
}
}
分享到:
相关推荐
写一个程序,输入-一个日期(年、月、日), 年份在1900-2050之间,做下列计算: (1) 计算明天的日期(年、月、日),输 出结果; (2) 输入一个天数(n) ,计算n天后的日 期; (3) 计算上述各个日期是星期几,并输出 (4)理解...
* @param int $weekStart 一周以星期一还是星期天开始,0为星期天,1为星期一 * @return array 数组array( "开始日期 ", "结束日期"); */ function getAWeekTimeSlot($gdate = '', $weekStart = 0) { if (! $...
一、给定一个日期值,求出此日期所在星期的星期一和星期天的日期数据 例如给定一个日期 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 ...
(4) 编写时间和日期的派生类CDati,完成日期与时间的联合设置、运算、比较等功能,要求该派生类可以完成:日期时间加天数或时间等于新的日期时间,日期时间减天数或等于新的日期时间,两个日期时间相减等于天数或...
计算日期A为星期几,先找一个知道为星期几的参照日期B,通过计算A和B的相差天数,就可计算出日期A星期几。 例:日期综合运算。 #include #include /*日期结构体*/ struct date { int year; int month; int...
继给定两个日子计算相差天数和给定某个日子,返回在一周的第几天,接下来还有一个给定某年某月,输出该月日历; 其实思想很简单,都是与1900-1-1相减,这样得到每月的第一天星期几,这样便于输出第一行; 接下来将...
当给定年月日,如何计算任意一天是星期几?
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日是星期一)
查询距离当前系统时间的本周星期一、星期日的天数的日期 获取系统当前 n天后 开始时间 获取系统当前 n天后 结束时间 按照指定格式,格式化指定时间 获取当前日期 获取给定日期N天后的日期 获取某月开始时间 获取本月...
一个月中的第几周 每月的星期是一个用有用的方法扩展Date和Time类的瑰宝。 在以日历安排的形式准确显示星期几的同时,... 考虑到星期一是一周的第一天,这将进行所有操作。 用法 返回月份中的日期,就像它们显示在日历
该程序主要是完成判断某天是周几,输入一天的日期(2020-2-2)这种格式,会判断该天是周几,如果日期格式不对,会显示输入错误。
getWeekDay函数: 给定年月日,计算该日期是星期几,返回0表示星期日,1表示星期一,以此类推。 printDay函数: 输入年月日,打印该日期是星期几。 printMonth函数: 输入年份和月份,打印指定月份的月历,包括日期和...
这个函数给定日期,输出星期几,至于0是星期一还是星期天,这和时区有关,反正我这里是0表示星期一 import time,datetime def get_week_day(date): week_day_dict = { 0 : '星期一', 1 : '星期二', 2 : '星期三...
mysql的日期和时间函数 这里是一个使用日期函数的例子。下面的查询选择所有 date_col 值在最后 30 天内的记录。 mysql> SELECT something FROM tbl_name WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) ...