java 根据日期计算星期几

本文介绍如何使用Java中的GregorianCalendar类来确定指定日期是一周中的哪一天。通过具体实例演示了如何创建GregorianCalendar实例并设置特定的年、月、日,进而获取该日期对应的星期几。
这里用到了GergorianCalendar类,它是Calendar(Calendar是一个抽象类)的一个实现类,提供了世界上大多数国家/地区使用的标准日历系统。
注意:

 - 月份:一月是0,二月是1,以此类推,12月是11。

它的主要方法有:
GregorianCalendar.get(GregorianCalendar.YEAR);          //得到年
GregorianCalendar.get(GregorianCalendar.MONTH);         //得到月
GregorianCalendar.get(GregorianCalendar.DATE);          //得到天
GregorianCalendar.get(GregorianCalendar.Day_OF_WEEK);   //一星期的第几天
GregorianCalendar.get(GregorianCalendar.Day_OF_MONTH);  //一月的第几天
 
注意:
GregorianCalendar是在java.util包里.

import java.util.*;

public class Main {
    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]);
        }

    }
}


### Java 计算指定日期对应的星期 #### 使用 `Calendar` 类计算星期 对于给定的日期,可以通过 `java.util.Calendar` 类来确定该日期星期。创建一个 `Calendar` 对象并利用其 `setTime()` 方法设定目标日期;之后调用 `get(Calendar.DAY_OF_WEEK)` 来取得表示星期的整数值[^1]。 ```java import java.util.Calendar; import java.util.Date; public class WeekdayFinder { public static String findDay(Date date) { Calendar cal = Calendar.getInstance(); cal.setTime(date); int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK); switch (dayOfWeek) { case Calendar.SUNDAY: return "Sunday"; case Calendar.MONDAY: return "Monday"; case Calendar.TUESDAY: return "Tuesday"; case Calendar.WEDNESDAY: return "Wednesday"; case Calendar.THURSDAY: return "Thursday"; case Calendar.FRIDAY: return "Friday"; case Calendar.SATURDAY: return "Saturday"; default: throw new IllegalArgumentException("Invalid day of week"); } } } ``` #### 利用 `SimpleDateFormat` 获取星期名称 另一种方式则是借助于 `SimpleDateFormat` 的强大格式化功能。“EEEE”模式符能够解析出完整的星期名字符串[^2]。 ```java import java.text.SimpleDateFormat; import java.util.Date; public class DayNameFormatter { public static String getWeekDayName(Date date) { SimpleDateFormat sdf = new SimpleDateFormat("EEEE"); return sdf.format(date); } } ``` 这两种方法都可以有效地帮助开发者获得特定日期所处的一周中的具体哪一天的信息。前者返回的是基于索引值的形式,而后者则直接提供了人类可读的文字描述形式。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值