计算某一天,在某一年中是第几天

2023年9月19日_System

获取当前日期

Date date = new Date();
//这里需要导入的包是java.util下的date类

Java

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;

public class TestDate {
    private static void test(){
        Date date = new Date();
        System.out.println(date);
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        String format = simpleDateFormat.format(date);
        System.out.println(format);
        String[] split = format.split("-");
        System.out.println(Arrays.toString(split));
        int year = Integer.parseInt(split[0]);
        int month = Integer.parseInt(split[1]);
        int day = Integer.parseInt(split[2]);
        System.out.println(year);
        System.out.println(month);
        System.out.println(day);
        System.out.println("---------");
        t1(year,month,day);
        t1(2023,1,1);
    }

    private static String t1(int year,int months, int days) {
        int[] month = {28,30,31};
        int[] threeOne = {1,3,5,7,8,10,12};
        int[] threeZone = {4,6,9,11};
        int twoEight = 2;
        List<String> list = new ArrayList<>();
        for (int i = 0; i < 12; i++) {
            boolean flag = true;
            if ((i+1) == 2){
                int day = te1(year);
                if (day == 0) {
                    list.add(i, twoEight + "-" + month[0]);
                }else {
                    list.add(i,twoEight+"-"+(month[0]+day));
                }
            }else {
                for (int j = 0; j < threeOne.length; j++) {
                    if (i+1 == threeOne[j]){
                        list.add(i,(i+1)+"-"+month[2]);
                        flag = false;
                        break;
                    }
                }
                if (flag){
                    for (int j = 0; j < threeZone.length; j++) {
                        if (i+1 == threeZone[j]){
                            list.add(i,(i+1)+"-"+month[1]);
                        }
                    }
                }
            }
        }
        int total = 0;
        int num = 0;
        for (int i = 0; i < list.size(); i++) {
            String s = list.get(i);
            String[] split = s.split("-");
            total+=Integer.parseInt(split[1]);
            if (Integer.parseInt(split[0]) < months){
                num+=Integer.parseInt(split[1]);
            }
        }
        num+=days;
        System.out.println("今天是"+year+"年的第"+num+"天");
        System.out.println("距离"+year+"年结束仅剩"+(total-num)+"天");
        System.out.println(total);
        return "";
    }
    private static int te1(int year){
        boolean flag = false;
        if (year%4 == 0 && year%100 != 0){
            System.out.println(year+":是普通闰年");
            flag = true;
        }else if (year%400 == 0){
            System.out.println(year+":是世纪闰年");
            flag = true;
        }else {
            System.out.println(year+"是普通年");
        }
        if (flag){
            return 1;
        }
        return 0;
    }

    public static void main(String[] args) {
        test();
    }
}

仅供学习,参考使用,可一起交流,前进!前进!前进!