求给定日期为星期几的例子

来源:互联网 发布:单片机相关书籍 编辑:程序博客网 时间:2024/05/16 17:33

/*
 * 实现功能:随便给你一个日期(如: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
星期四