/*
* 实现功能:随便给你一个日期(如:2008-8-8),问这一天是星期几 ?
* 方法:可有两种,见注释
*/
package com.lwj.test;
import java.io.*;
import java.util.*;
import java.text.*;
public class Test {
public static void main(String[] args)throws Exception {
/*
//这是第一种方法,用Calendar的相关类实现,要注意的是:月份从0开始,星期从1开始(1表示星期日),程序中要相应处理。
int dayOfWeek;
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.print("请键入日期(如:2008-8-8):");
String str=br.readLine();
String [] date=str.split("-");
int year=Integer.parseInt(date[0]);
int month=Integer.parseInt(date[1]);
int dayOfMonth=Integer.parseInt(date[2]);
Calendar calendar=new GregorianCalendar(year,month-1,dayOfMonth);
if (calendar.get(Calendar.DAY_OF_WEEK)==1)
dayOfWeek=7;
else
dayOfWeek=calendar.get(Calendar.DAY_OF_WEEK)-1;
System.out.println("打印星期几:"+dayOfWeek);
br.close();
*/
//这是第二种方法,用SimpleDateFormat和Date实现,更简洁,而且不用转换和处理,打印的还是汉字的星期几。
SimpleDateFormat dateFormatter=new SimpleDateFormat("yyyy-MM-dd");
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.print("请键入日期(如:2008-8-8):");
String str=br.readLine();
Date date=dateFormatter.parse(str);//将特定格定的String转换为Date;
dateFormatter.applyPattern("E");//"E"表示要用星期格式化
System.out.println(dateFormatter.format(date));
br.close();
}
}
运行:
第一种方法演示:
请键入日期(如:2008-8-8):2009-1-1
打印星期几:4
第二种方法演示:
请键入日期(如:2008-8-8):2009-1-1
星期四