输入日期显示星期几

输入时间获取对应的日期是星期几

package test1;

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 {

    static Scanner in = new Scanner(System.in);
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String year = null;// 年份
        String month = null;// 月份
        String day = null;// 日

        // 输入年月日
        System.out.println("请输入年份:");
        year = in.next();
        System.out.println("请输入月份:");
        month = in.next();
        System.out.println("请输入日:");
        day = in.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) {
        //判断年份是否符合要求
        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)         {
    e.printStackTrace();
    }

        Calendar cal = Calendar.getInstance();

        cal.setTime(d);

        int weekDay = cal.get(Calendar.DAY_OF_WEEK);

        switch(weekDay) {
            case 1 : str="星期日"; break;
            case 2 : str="星期一"; break;
            case 3 : str="星期二"; break;
            case 4 : str="星期三"; break;
            case 5 : str="星期四"; break;
            case 6 : str="星期五"; break;
            case 7 : str="星期六"; break;
            default: break;
        }

        return str;
    }

}

原文地址:https://www.cnblogs.com/1gaoyu/p/12516486.html

时间: 2024-10-30 09:02:18

输入日期显示星期几的相关文章

Python3 输入日期显示星期几

import time import traceback def findLen(str): counter = 0 while str[counter:]: counter += 1 return counter def is_valid_date(str_date): '''判断是否是一个有效的日期字符串''' try: time.strptime(str_date, "%Y%m%d") return True except Exception: # traceback.print

inputs a date (e.g. July 4, 2008) and outputs the day of the week-根据输入日期判断星期几

inputs a date (e.g. July 4, 2008) and outputs the day of the week-根据输入日期判断星期几: //inputs a date (e.g. July 4, 2008) and outputs the day of the week #include<iostream> #include<string> using namespace std; bool leapyear; void getInput(string&

C++ 实现判断一个输入日期是星期几,是一年中的第几天

/* 通过输入年月日,计算出这一天是星期几,计算这一天是这一年的多少天,判断这一年是否为闰年 */ #include<iostream> using namespace std; struct time { int year; int month; int day; unsigned int weekday; }; void initialtime(time & t);//输入初始化时间 void Show(time & t);//显示时间信息 int Weekdaycount

oracle根据日期计算星期几

工作中用到的,在存储过程中的语句,简单记下: /** 判断输入日期是星期几 */ select decode(to_char(to_date(iv_date,'yyyy-mm-dd'), 'day'),'星期一','1','星期二','2','星期三','3','星期四','4','星期五','5','星期六','6','7') into vi_weeknum from dual; /** 计算离输入日期最近的星期一的日期 */ select to_char((to_date(iv_date,'

EXCEL 函数----choose()妙用显示将日期换算成星期

年后第一篇博文,和大家分享一下choose函数的妙用.首先大家看下图: A列是一些日期,我需要在B列和C列显示A列的日期是星期几,其实B列和c列只是中英文的问题.提取日期的星期代码我们需要用weekday()  ,即weekday(A1,2) 返回的是星期的序列,其中参数2是一周从周一开始,如果是从周日开始就是1,当然这个不是重点.我们的重点是choose函数. 我们在B2单元格中输入 =CHOOSE(WEEKDAY(A2,2),"星期一","星期二","

输入一个日期,输出该日期是星期几

假定输入日期合法正确. 先找一个参考日期,找星期天的日期为最好.我一时没想到就选了今天,星期一,也不错.然后求出输入日期与参考日期之间间隔的天数n,n为负时则表示输入日期在参考日期之前,n为正时则表示输入日期在参考日期之后.因为星期为循环星期1到星期天,又根据补码的原理,可知n = ((n % 7) +  8) % 7, 此时的n为几则是星期几.(PS:星期天用0来表示,因为我选的是参考日期是星期一所以是+8,如果选的是星期天则是+7). 1 //给定一个日期,求这个日期是星期几? 2 #inc

题目1043:Day of Week(输入日期与当前日起天数差%7,在做相关星期调整)

题目描述: We now use the Gregorian style of dating in Russia. The leap years are years with number divisible by 4 but not divisible by 100, or divisible by 400.For example, years 2004, 2180 and 2400 are leap. Years 2004, 2181 and 2300 are not leap.Your t

C# 怎么显示中文格式的日期、星期几

//该语句显示的为英文格式DateTime.Now.DayOfWeek.ToString(); //显示中文格式星期几 "星期" + DateTime.Now.ToString("ddd",new System.Globalization.CultureInfo("zh-cn")); //显示中文格式的日期DateTime.Now.ToLongDateString(); // 显示格式为"2008年1月1日"DateTime.

制作可视化日历,输入日期得到当月 月历表

import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Scanner; /** * 制作可视化日历,输入日期得到当月 月历表 * */ public class CalendarDemo { public static voi