`

Java正确获取星期Calendar.DAY_OF_WEEK

    博客分类:
  • java
阅读更多

  正确获取星期几(Calendar.DAY_OF_WEEK)

Calendar now = Calendar.getInstance();
//一周第一天是否为星期天
boolean isFirstSunday = (now.getFirstDayOfWeek() == Calendar.SUNDAY);
//获取周几
int weekDay = now.get(Calendar.DAY_OF_WEEK);
//若一周第一天为星期天,则-1
if(isFirstSunday){
	weekDay = weekDay - 1;
    if(weekDay == 0){
	    weekDay = 7;
	}
}
//打印周几
System.out.println(weekDay);

//若当天为2014年10月13日(星期一),则打印输出:1
//若当天为2014年10月17日(星期五),则打印输出:5
//若当天为2014年10月19日(星期日),则打印输出:7

 

 

星期日为一周的第一天 SUN MON TUE WED THU FRI SAT
DAY_OF_WEEK返回值 1 2 3 4 5 6 7
星期一为一周的第一天 MON TUE WED THU FRI SAT SUN
DAY_OF_WEEK返回值 1 2 3 4 5 6 7

 

以下参考:

1. 在获取月份时,Calendar.MONTH + 1 的原因
Java中的月份遵循了罗马历中的规则:当时一年中的月份数量是不固定的,第一个月是JANUARY。而Java中Calendar.MONTH返回的数值其实是当前月距离第一个月有多少个月份的数值,JANUARY在Java中返回“0”,所以我们需要+1。

2. 在获取星期几 Calendar.DAY_OF_WEEK – 1 的原因
Java中Calendar.DAY_OF_WEEK其实表示:一周中的第几天,所以他会受到 第一天是星期几 的影响。
有些地区以星期日作为一周的第一天,而有些地区以星期一作为一周的第一天,这2种情况是需要区分的。
看下表的返回值

星期日为一周的第一天 SUN MON TUE WED THU FRI SAT
DAY_OF_WEEK返回值 1 2 3 4 5 6 7
星期一为一周的第一天 MON TUE WED THU FRI SAT SUN
DAY_OF_WEEK返回值 1 2 3 4 5 6 7

所以Calendar.DAY_OF_WEEK需要根据本地化设置的不同而确定是否需要 “-1”
Java中设置不同地区的输出可以使用 Locale.setDefault(Locale.地区名) 来实现。

 

System.out.println(calendar.get(Calendar.DAY_OF_WEEK));

返回的是周几,而不是一周的第几天

 

可以这样设置,星期第一天是星期几:

calendar.setFirstDayOfWeek(Calendar.MONDAY);

也可以设置Calendar.SUNDAY

设置好了就决定了当前日期的WEEK_OF_YEAR,但并不会改变DAY_OF_WEEK !

 

3. 获取日期时 Calendar.DAY_OF_MONTH 不需要特殊的操作,他直接返回一个月中的第几天

1
1
分享到:
评论

相关推荐

    java 获取时间 本周本年本月第一天最后一天

    c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek()); // Monday System.out.println(c.getTime()); c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek() + 6); // Sunday //本周第一天,以星期日开始 。。。...

    java时间处理工具类--DateUtils

    cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); cal.add(Calendar.DAY_OF_MONTH, 6); return cal.getTime(); } /** * 获取指定时间范围的第一天 * * @param dateRangeType * 时间范围类型 * ...

    java时间处理工具类--CalendarUtil(java源码)

    int first_day_of_week = now.get(Calendar.DATE) + 2 - today; // 星期一 now.set(Calendar.DATE, first_day_of_week); return now.getTime(); } /** * 获得所在星期的最后一天 */ public static ...

    calendar.java

    通过Calendar对象的get(Calendar.DAY_OF_WEEK)方法可以获得Calendar对象为星期几(星期天为1,星期六为7)。 注意: Calendar中的月份从0开始(1月为0,12月为11),日期从1开始(1日为1,28日为28); 12生肖的...

    jar编写的日程管理系统

    int i=calendar.get(Calendar.DAY_OF_WEEK)-1; if(i==0) i=7; return i; } static boolean in_term(Date date){ int[] term=WeekInfStore.get_term_date(); Calendar c1=Calendar.getInstance()...

    界面标准的JAVA日历记事本

    在得到日期的同时判断DAY OF WEEK星期几,在窗体上显示 5为各个按钮及标签添加监听 通过ActionPerform MousePressed实现其动作 6 保存日志 显示日志及删除日志,总过创建哈希表来进行文件的读写

    java时间格式大全(算法源码)

    java时间格式大全(算法源码) java,date,时间,时间格式,算法源码 * * @return */ public static String getTimeShort() { SimpleDateFormat formatter = new ... if (cal1.get(Calendar.WEEK_OF_YEAR) == ...

    ZendFramework中文文档

    获取和控制插件 7.10.5. 包含在标准发行包中的插件 7.10.5.1. 动作堆栈 7.10.5.2. Zend_Controller_Plugin_ErrorHandler 7.10.5.2.1. 使用 ErrorHandler 作为一个 404 处理器(handler) 7.10.5.2.2. 处理以前...

    JSP万年历 JSP万年历

    int firstIndex = thisMonth.get(Calendar.DAY_OF_WEEK) - 1; int maxIndex = thisMonth.getActualMaximum(Calendar.DAY_OF_MONTH); for (int i = 0; i ; i++) { days[firstIndex + i] = String.valueOf(i + 1);...

    Java电子日历设计.doc

    Java程序设计 课程设计报告 设计题目:电子日历设计 班级: 学号: 姓名: 1. 需求分析 设计并实现一个电子日历,当用户在下拉列表中选择年份... int week=date.get(Calendar.DAY_OF_WEEK)-1; int day=0; if(month==1

    如何打印2019年每个月的第一个星期天的日期

    这是一个关于日期处理的题目,在这里我主要用了Calendar类的相关属性与方法。 首先,我们来分析一下: 我们可以从2019年1月1日,用while...所以我们通过运算符,把第二周也算上,再嵌套个if判断Calendar.DAY_OF_WEEK

    java常用工具类的使用

    而Date的其他构造方法和普通方法的API都不容易实现国际化,因此目前Date类的大多数方法都被标识为过时,表示更灵活的时间类请参考java.util.Calendar。 Date的输出结果是按照国际通用格式输出的,而中国更习惯于...

    Java 2实用教程(第三版)实验指导与习题解答

    Java 2实用教程(第三版)实验指导与习题解答 清华大学出版社 (编著 耿祥义 张跃平) 实验模版代码 建议使用文档结构图 (选择Word菜单→视图→文档结构图) 上机实践1 初识Java 4 实验1 一个简单的应用程序 ...

    duang简易日历记事本

    利用java语言开发建议日历记事本程序。 public class CalendarPad extends JFrame implements MouseListener{ int year,month,day; Hashtable hashtable; File file; static JTextField showDay[]; JLabel...

    simpleDate:java简单的日历生成器

    SimpleWeek week : simpleCalendar . getWeekList()) { System . out . println(); for ( SimpleDate . SimpleDay day : week . getDays()) { System . out . print(day . getDay() + " \t\t " ); } } ##...

    VB编程资源大全(英文源码 控制)

    millisec.zip Count Time in Milliseconds <END><br>60,getday.zip Get the Day of Week that a Day Falls On<END><br>61,shellend.zip Notify the User when a Shelled Process Ends <END><br>62,varlist....

    calendar:2015-03-29集团项目

    日历 在这个项目中,我们将编写一些代码来处理日期,包括星期几和假期。 您将编写一个程序,要求输入日期并打印该日期的摘要。...day of week: Saturday work day: false national holiday: Independen

Global site tag (gtag.js) - Google Analytics