zoukankan      html  css  js  c++  java
  • 输入日期显示星期几

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

    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;
        }
    
    }
  • 相关阅读:
    修改silverlight DataGrid当前选中行及选中列的背景色
    转 Introduction to SharePoint Feature Stapling – Part 2
    File.ReadAllText方法,File.WriteAllText方法修改文件内容
    用xlst将xml转换html
    简单在线编辑器<转>
    随机数生成
    asp.net 2.0 的代码隐藏
    Microsoft .NET Pet Shop 3.x: .NET Pet Shop 的设计模式与体系结构
    并发术语解释
    如何在Render方法中修改替换HtmlTextWriter中的内容
  • 原文地址:https://www.cnblogs.com/1gaoyu/p/12516486.html
Copyright © 2011-2022 走看看