java - 根据输入的日期,返回星期几

2018/04/17 11:01
阅读数 24

  设计函数实现输入日期显示星期几。

  下面为程序的代码:

/************************************************************   
Copyright (C), 1988-1999, Huawei Tech. Co., Ltd.   
FileName: main.cpp
  
Author: Light  
Version :   1.0       
Date:   2018/4/17
Description: 输入日期,返回星期几     // 模块描述         
Version:  仅用于软件测试,完成作业// 版本信息 
  
Function List:     // 主要函数及其功能     
1.
 History: 
  // 历史修改记录 
      
	<author>  <time>   <version >   <desc>       
    Light    18/4/17     1.0        建立函数

***********************************************************/

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class main {
    public static void main(String[] args) { // TODO Auto-generated method stub String year = null;//年份 String month = null;//月份 String day = null;//日 //输入年月日 @SuppressWarnings("resource") Scanner scanner1 = new Scanner(System.in); @SuppressWarnings("resource") Scanner scanner2 = new Scanner(System.in); @SuppressWarnings("resource") Scanner scanner3 = new Scanner(System.in); System.out.println("请输入年份:"); year=scanner1.next(); System.out.println("请输入月份:"); month=scanner2.next(); System.out.println("请输入日:"); day=scanner3.next(); //检测输入是否响应 System.out.println( "输入的时间为:" + year + "年" + month + "月" + day + "日"); //检测输入的内容是否为数字,或为空 if(!isNumber(year) || !isNumber(month) || !isNumber(day) ) { System.out.println("检测到您的输入不合法,请输入数字!"); } else { int year_rual=Integer.parseInt(year); int month_rual=Integer.parseInt(month); int day_rual=Integer.parseInt(day); //判断输入的日期是否合法 if (judge(year_rual,month_rual,day_rual)) {   String weekday=weekByDate(year_rual,month_rual,day_rual);   System.out.println( year + " 年" + month + " 月" + day + " 日是 " + weekday); } else {   System.out.println("检测到您的输入不合法,请输入合法日期!"); } } } /** * 判断输入的年月日是否为数字,或为空 * @param number //输入内容 * @return boolean//返回值为true符合规则,返回值为false不符合规则 */ public static boolean isNumber(String number) { if (number == null || "".equals(number.trim())) { return false; } Pattern pattern = Pattern.compile("[0-9]*"); Matcher isNum = pattern.matcher(number.trim()); if (isNum.matches()) { return true; } else { return false; } } /** * 判断输入的年月日是否符合规则 * @param year //年份 * @param month // 月份 * @param day //天 * @return boolean//返回值为true符合规则,返回值为false不符合规则 */ public static boolean judge (int year,int month,int day) {  //当输入的数字小于零时,返回false   if (year <= 0)   {    return false;    }   if (month <= 0 || month > 12)
      {     return false;   } if (day<=0 || day > 31){ return false; } //年份能被4整除并且不能被100整除,或者能被400整除,则为闰年 if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) { if (month == 2) { //闰年的2月 if (day > 29) { return false; } } }else{ //不是闰年的2月 if (month == 2) { if (day > 28) { return false; } } } //1、3、5、7、8、10、12月份为31天 int[] m1 = {1,3,5,7,8,10,12}; for (int i = 0; i < m1.length; i++){ if (month == m1[i]) { if (day>31) { return false; } } } //4、6、9、12月份为30天 int[] m2 = {4,6,9,11}; for (int j = 0; j < m2.length; j++) { if (month == m2[j]) { if (day > 30) { return false; } } } return true; } /** * 根据年月日返回星期几 * @param year //年份 * @param month //月份 * @param day //天 * @return String //返回值直接返回星期几 */ public static String weekByDate (int year,int month,int day) { String str=""; SimpleDateFormat fmt = new SimpleDateFormat("dd MM yyyy"); Date d = null; try { d = fmt.parse(day+" "+month+" "+year); }
     catch (ParseException e)
{   // TODO Auto-generated catch block   e.printStackTrace(); } Calendar cal = Calendar.getInstance(); cal.setTime(d); int weekDay = cal.get(Calendar.DAY_OF_WEEK); switch(weekDay) { case 1 : str="SUNDAY"; break; case 2 : str="MONDAY"; break; case 3 : str="TUESDAY"; break; case 4 : str="WEDNESDAY"; break; case 5 : str="THURSDAY"; break; case 6 : str="FRIDAY"; break; case 7 : str="SATURDAY"; break; default: break; } return str; } }

  

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部