输入年月日判断每年天数和周几

这篇博客介绍如何使用Java编程,根据输入的年月日确定该日期在当年是第几天以及对应的星期。通过算法和数据结构实现日期处理功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

输入年月日判断为今年的第几天和周几?

判断今年第几天的方法:

package com.stx.xy.testdate;

public class Date {
    public int day(int year,int month,int day){
        int fed = 28;
        int sum = 0;
        if ((year%4==0&&year%100!=0)||year%400==0){
            fed = 29;
        }
        switch (month){
            case 1:
                sum = day;
                break;
            case 2:
                sum = 31+day;
                break;
            case 3:
                sum = 31+fed+day;
                break;
            case 4:
                sum = 31+fed+31+day;
                break;
            case 5:
                sum = 31+fed+31+30+day;
                break;
            case 6:
                sum = 31+fed+31+30+31+day;
                break;
            case 7:
                sum = 31+fed+31+30+31+30+day;
                break;
            case 8:
                sum = 31+fed+31+30+31+30+31+day;
                break;
            case 9:
                sum = 31+fed+31+30+31+30+31+31+day;
                break;
            case 10:
                sum = 31+fed+31+30+31+30+31+31+30+day;
                break;
            case 11:
                sum = 31+fed+31+30+31+30+31+31+30+31+day;
                break;
            case 12:
                sum = 31+fed+31+30+31+30+31+31+30+31+30+day;
                break;
        }
        System.out.println(year+"年"+month+"月"+day+"日是"+year+"年的第"+sum+"天");
        return sum;
    }
}

判断为周几的方法:

package com.stx.xy.testdate;

public class Week {
    //公元1年1月1日星期天
    public void week(int year,int month,int day,int sum){
        for (int i =1;i <year;i++){
            if((i%4 == 0&&i%100!=0)||i%400==0){
                sum +=366;
            }else {
                sum += 365;
            }
        }
        if (sum % 7 ==0){
            System.out.println("今天是周日");
        }else {
            System.out.println("今天是周"+sum%7);
        }
    }


}

主类:

package com.stx.xy.testdate;

import java.util.Scanner;

public class TestDate {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Date date = new Date();
        Week week = new Week();
        System.out.println("请输入年:");
        int y = sc.nextInt();
        while (true){
            System.out.println("请输入月:");
            int m = sc.nextInt();
            System.out.println("请输入日:");
            int d = sc.nextInt();
            if (m<=12&&d<=31){
                int sum =date.day(y,m,d);
                week.week(y,m,d,sum);
                break;
            }else {
                System.out.println("月/日输入错误,请重新输入。");
            }
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值