文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Java 根据日期计算星期几

2023-09-21 17:31

关注

方法一:根据基姆拉尔森日期公式

 public static void main(String args[]) {        Scanner scanner = new Scanner(System.in);        // 声明 int 类型的变量 y 用来获取控制台输入的年        int y = scanner.nextInt();        // 声明 int 类型的变量 m 用来获取控制台输入的月        int m = scanner.nextInt();        // 声明 int 类型的变量 d 用来获取控制台输入的日        int d = scanner.nextInt();                // 第一步,判断变量 m 的值是否是 1 或者 2。如果是,则变量 m 在原来的基础上加12,同时变量 y 在原来的基础上减1        if (m == 1 || m == 2) {            m += 12;            y--;        }        // 第二步,使用基姆拉尔森日期公式,计算星期几        int iWeek = (d + 2 * m + 3 * (m + 1) / 5 + y + y / 4 - y / 100 + y / 400) % 7;        // 第三步,使用多路分支判断星期几。如果是星期一,则在控制台输出"星期一";如果是星期二,则在控制台输出"星期二"....以此类推,如果是星期日,就是在控制台输出"星期日"        switch (iWeek) {            case 0:                System.out.print("星期一");                break;            case 1:                System.out.print("星期二");                break;            case 2:                System.out.print("星期三");                break;            case 3:                System.out.print("星期四");                break;            case 4:                System.out.print("星期五");                break;            case 5:                System.out.print("星期六");                break;            case 6:                System.out.print("星期日");                break;        }            }

方法二:Calendar类

 public static String dateToWeek(String datetime) {SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");String[] weekDays = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };Calendar cal = Calendar.getInstance(); // 获得一个日历Date datet = null;try {datet = f.parse(datetime);cal.setTime(datet);} catch (ParseException e) {// TODO Auto-generated catch blocke.printStackTrace();}int w = cal.get(Calendar.DAY_OF_WEEK) - 1; // 指示一个星期中的某天。if (w < 0)w = 0;return weekDays[w];}

方法三:GergorianCalendar类

 public static void main(String []args)    {        Scanner cin=new Scanner(System.in);        System.out.println("请输入年,月,日:");        while(cin.hasNext())        {            int year=cin.nextInt();            int month=cin.nextInt();            int day=cin.nextInt();            GregorianCalendar gre=new GregorianCalendar();            Date date=new Date(year-1900,month-1,day); //年要减去1900,月份是0-11//            System.out.println(date);             gre.setTime(date);            int weekday=gre.get(Calendar.DAY_OF_WEEK)-1; //0是星期天            String []s={"星期天","星期一","星期二","星期三","星期四","星期五","星期六",};            System.out.println(year+" "+month+" "+day+" "+s[weekday]);        }

方法四:LocalDateTime

public static void main(String[] args) {        getDayOfWeek(2023,9,5);    }        private static void getDayOfWeek(int year,int month,int day) {        LocalDateTime dateTime= LocalDateTime.now();//        LocalDateTime with = dateTime.withYear(2020).withMonth(7).withDayOfMonth(2);        LocalDateTime with = dateTime.withYear(year).withMonth(month).withDayOfMonth(day);//      LocalDateTime with = dateTime.with(LocalDate.of(year,month,day));        DayOfWeek dayOfWeek = with.getDayOfWeek();        int value = dayOfWeek.getValue();        //获取周几,1-7 代表周一到周日        System.out.println(value);        //获取周几,英文MONDAY,TUESDAY。。。        System.out.println(dayOfWeek);    }

来源地址:https://blog.csdn.net/jg_csdn/article/details/132455802

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯