【JAVA】判断当前日期是星期几、当前日期是当年第几周

 判断当前日期是星期几:

这个是转载来的方法,里面的getYear()、getMonth()、getDay()方法已经过期,再往下有个我自己写的方法。

 

 

需要导入的包:

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
	public static int dayForWeek(String pTime) throws Throwable {
		
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
		
		Date tmpDate = format.parse(pTime);
		
		Calendar cal = new GregorianCalendar();
		
		cal.set(tmpDate.getYear(), tmpDate.getMonth(), tmpDate.getDay());
		
		return cal.get(Calendar.DAY_OF_WEEK);
	}

 

自己写的方法:

    /*
	 * 传入的日期转换成星期几
	 */
	public static String dateToWeekday(Date changeDate){
		String[] weekdays = { "周日", "周一", "周二", "周三", "周四", "周五", "周六" };
		if(changeDate == null) {
			throw new MyException("传入时间为Null");
		}
		Calendar cal = Calendar.getInstance();
		cal.setTime(changeDate);
		int numOfWeek = cal.get(Calendar.DAY_OF_WEEK) - 1;
		return weekdays[numOfWeek];
	}

判断当前日期是当年第几周:

String today = "2013-01-14";  
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");  
Date date = null;  
try {  
    date = format.parse(today);  
} catch (ParseException e) {  
    // TODO Auto-generated catch block  
    e.printStackTrace();  
}  
  
Calendar calendar = Calendar.getInstance();  
calendar.setFirstDayOfWeek(Calendar.MONDAY);  
calendar.setTime(date);  
  
System.out.println(calendar.get(Calendar.WEEK_OF_YEAR)); 

用到判断日期属于当年的第几周,用了一个有点复杂的代码。看Calendar类时,看到了WEEK_OF_YEAR,很实用。但是用时又出现了点小问题,比如2010-01-03,返回的结果是2(即2010年的第二个星期),原因是美国是以周日为每周的第一天。

  我想到了更改星期的起始日,setFirstDayOfWeek(int value),传了一个1,想把周一设成第一天,但是没有起到效果。查文档后改成了Calendar.MONDAY就好使了,却不太清楚为什么用1不好使,用Calendar.MONDAY就行呢?

  

  补:又查看了一下“常量字段值”,发现MONDAY的值根本就不是想当然的1,而是2。

  SUNDAY :1

  MONDYA :2

  TUESDAY :3

  WEDNESDAY :4

  THURSDAY : 5

  FRIDAY : 6

  SATURDAY :7

评论 2 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

Ocean_17

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值