A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yanghu 中级黑马   /  2014-4-17 19:07  /  1285 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我输入一个日期格式,怎么知道是这年的星期几,java里面有直接的方法吗,还是需要自己去想算法?

6 个回复

倒序浏览
本帖最后由 伍叶竹 于 2014-4-17 19:27 编辑

java.util.Date,和java.util.Calendar 是 java 的时间类型。Java.util.Calendar类是java.util.Date类的一个更加深入,更加全面的替代。
Java.util.Calendar类支持java.util.Date的所有功能。jdk1.1开始。

可以去找找里面的方法。应该有你要的。
好像论坛有人自己写了代码实现你说的功能。你可以找一下。
  1. //根据日期取得星期几
  2.         public static String getWeek(Date date){
  3.                 String[] weeks = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
  4.                 Calendar cal = Calendar.getInstance();
  5.                 cal.setTime(date);
  6.                 int week_index = cal.get(Calendar.DAY_OF_WEEK) - 1;
  7.                 if(week_index<0){
  8.                         week_index = 0;
  9.                 }
  10.                 return weeks[week_index];
  11.         }
复制代码
http://blog.csdn.net/cselmu9/article/details/8625530
参考。很全。


评分

参与人数 1技术分 +1 收起 理由
菜小徐 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 曲佳奇 于 2014-4-17 19:59 编辑

Calendar cal = Calendar.getInstance();
int weekday = cal.get(Calendar.DAY_OF_WEEK);

星期日为一周的第一天
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”

默认的就是第一种  以周日为第一天 所以结果转换星期需要 -1


回复 使用道具 举报
  1.                   Calendar c=Calendar.getInstance();
  2.                  c.set(2014, 3, 17);//代表的是2014 -4- 17    3代表的是4月份
  3.                  System.out.println(c.get(Calendar.DAY_OF_WEEK));//周日为索引0   依次类推
复制代码
回复 使用道具 举报
伍叶竹 发表于 2014-4-17 19:19
java.util.Date,和java.util.Calendar 是 java 的时间类型。Java.util.Calendar类是java.util.Date类的一个 ...

Calendar这个类好像可以,但这个类能构造函数怎么用?
参数:
zone - 要使用的时区
aLocale - 用于星期数据的语言环境
怎么构造2014-04-16
回复 使用道具 举报
本帖最后由 Kelvinhu 于 2014-4-17 20:01 编辑


贴代码说明。

用Calendar类来判断是周几:

  1. package Testpackage;

  2. import java.text.ParseException;
  3. import java.text.SimpleDateFormat;
  4. import java.util.*;

  5. public class TestWeek {
  6.         public static void main(String args[]) throws ParseException {
  7.         Scanner in = new Scanner(System.in);
  8.         SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
  9.         String week=getWeek(format.parse(in.next()));
  10.         System.out.print(week);
  11.         }
  12.        
  13.        
  14.        
  15.         static String getWeek(Date date){
  16.                 String[] weeks = {"周一","周二","周三","周四","周五","周六","周天"};
  17.                 Calendar cal = Calendar.getInstance();
  18.                 cal.setTime(date);
  19.                 int week_index = cal.get(Calendar.DAY_OF_WEEK) - 1;
  20.                 if(week_index<0){  
  21.             week_index = 0;  
  22.         }
  23.         return weeks[week_index];  
  24.     }
  25. }
复制代码


评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 赞一个!

查看全部评分

回复 使用道具 举报
yanghu 发表于 2014-4-17 19:41
Calendar这个类好像可以,但这个类能构造函数怎么用?
参数:
zone - 要使用的时区

Calendar类是一个抽象类,不能用构造器来创建Calendar对象,
但可以通过静态的getInstance方法获取对象。
先Calendar c = Calendar.getInstance();
再使用里面的方法System.out.println(c.get(Calendar.YEAR));  YEAR字段可以改成需要的,DAY,MONTH
还有一些 c.set(年,月,日,时,分,秒)
其他的用法可以自己网上查,还有api文档可以查。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马