Java 根据日期计算星期几

这篇具有很好参考价值的文章主要介绍了Java 根据日期计算星期几。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

 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();
        /********** Begin **********/
        // 第一步,判断变量 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;
        }
        /********** End **********/
    }

方法二:Calendar类

 /**
     * 日期转星期
     * 
     * @param datetime "2017-01-01"
     * @return
     */
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 block
			e.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);
    }

    /**
     * 输入年月日,确保输入日期符合正确年月日,如一个月不能能输入40
     * @param year 年
     * @param month 月
     * @param day 日
     */
    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://www.toymoban.com/news/detail-728559.html

到了这里,关于Java 根据日期计算星期几的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言 switch语句详细讲解 简单计算器及PTA例题季节判断,今天星期几-1(switch语句实现), 数据按需处理

    (1) 当被测试的变量等于 case 中的常量时,case 后跟的语句将被执行,直到遇到  break  语句为止。 (2)不是每一个 case 都需要包含  break 。如果 case 语句不包含  break ,控制流将会  继续  后续的 case,直到遇到 break 为止。 (3) 上面所有 case 都无法判断结果时,可用 default 代替

    2024年02月05日
    浏览(61)
  • Android Kotlin Java 自定义日历控件 CalendarView ,支持单选,多选,按星期选,跨月份日期范围选择,样式设置,设置不可选日期,设置只可选日期

    https://github.com/hdev0225/CalendarView CalendarView 使用kotlin语言开发,支持单选,多选,按星期选,跨月份日期范围选择,样式设置,设置不可选日期,设置只可选日期 设置不可选择日期,设置只可选择某些日期 AS 版本: Android Studio Dolphin | 2021.3.1 Android Gradle Plugin Version: 7.3.0 Gradle

    2024年02月09日
    浏览(44)
  • (JAVA)hutool工具类-Date<——>String类型互转,加日期操作加一年、一月、一星期、一天、一分、一秒操作

    之前小编去搜索,把时间格式转为String类型,搜索好几篇文章都还用 【 new SimpleDateFormat () 】 去转换,现在小编用hutool里的DateUtil里的方法,简单方便一行代码搞定!! 结果如下:  效果图如下 附加如下时间加减操作:  这些都是格式,看哪种满足需求 英文格式转中文格式

    2024年02月13日
    浏览(45)
  • 不使用标准库的情况下计算日期对应的星期值

    要在不使用标准库的情况下计算日期对应的星期值,可以使用基于蔡勒公式(Zeller’s Congruence)的算法来实现。这个算法可以将给定的日期转换为一个0到6之间的整数,其中0代表星期日,1代表星期一,以此类推。 以下是使用C语言实现这个算法的示例代码:

    2024年02月13日
    浏览(27)
  • java 根据身份证号码判断性别

    在Java中,您可以根据身份证号码的规则来判断性别。中国的身份证号码通常采用的是以下规则: 第17位数字代表性别,奇数表示男性,偶数表示女性。 通常,男性的出生日期的第15、16位数字是01,女性是02。 请注意,这只是一个大致的规则,实际上,有些特殊情况下的身份

    2024年02月07日
    浏览(50)
  • Java 8 判断日期字符串是否符合指定格式

    可以使用 Java 8 的 DateTimeFormatter 类来判断日期字符串是否符合指定格式。具体代码如下: 如果你不想通过捕获异常的方式来判断日期字符串是否符合指定格式,也可以使用 DateTimeFormatter 类中的 parseUnresolved() 方法来进行解析。具体代码如下: 以上代码中,使用 parseUnresolved(

    2024年02月16日
    浏览(57)
  • java 圆形坐标计算(根据角度和边长计算位置)

    通过三角函数计算 圆形的任意弧形角度都对应一个直角三角形,通过三角函数来计算直角三角形的边长,从而得出每个角度下圆形坐标位置 o 为起始位置, r为半径,求圆形坐标位置 代码实现 设坐标 24,24 半径24 通过计算得出的结果和图形如下图 代码摘自Java 开发之 根据坐标

    2024年02月13日
    浏览(35)
  • MySQL中根据出生日期计算年龄

    创建student表 mysql create table student(                                                                                 -     sid int primary key comment \\\'学生号\\\',                                                      

    2024年01月18日
    浏览(41)
  • Java计算时间差、日期差

    在java中,计算时间差或日期差有多种方法,以下提供五种示例: 目录 一、使用 Instant 和 Duration 类计算时间差 二、使用 LocalDate 和 ChronoUnit 类计算日期差 三、使用 Joda-Time 库计算时间差和日期差 四、使用 Instant 和 Period 类计算日期差 五、使用 Java 8 的 java.time.tempo

    2024年02月14日
    浏览(47)
  • python根据出生日期计算年龄的源码

    将内容过程经常用的内容做个收藏,下面的内容段是关于python根据出生日期计算年龄的的内容。 #a function to find your age def age(): print “Enter Your Date of Birth” d=input(“Day:”) m=input(“Month:”) y=input(“Year:”) #get the current time in tuple format a=gmtime() #difference in day dd=a[2]-d #difference in

    2023年04月18日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包