JAVA那个高手能用数组(一维或二维)输出这天上这年的第几天啊。。急需!!

来源:百度知道 编辑:UC知道 时间:2024/06/14 11:08:12
本人刚学JAVA 求救高手支援帮助 顶死你‘!!!
用JAVA语言里的数组 一维或二维 输出这天是 这年的第几天。。

难道是输出 今天么?

这天是什么意思 给定 年 月 日?

和数组有关系?

如果用包的话,可以用util包里面的 Calendar 类 或 Date 类 特别是它们的子类

实在要算也没办法

我这里给一个自己设计的算法

先用月日算出一个天数 这个时候默认每个月都是30天

算法为 anwser = 30*(month-1) + date //这里必须得减去当月哦

然后算一个天数补偿表,也可以提前算好,算法就是小时候背的“一三五七...”
s
平年:balance[12]={1,-2,1,0,1,0,1,1,0,1,0,1}

闰年:balance[12]={1,-1,1,0,1,0,1,1,0,1,0,1}

其实这个表的最后一项是无用的,这里写出是为凑齐12个月

然后在刚才算出的answer上加上补偿表,只取month-1以前的所有月份

建立一个平年补偿表就行了,最后根据年份算出是否为leap年

如果是leapyear并且月份大于等于3 就在answer上再加一天

最后答案就是了

又想了一下,其实补偿表可以建立成这样子

平年:balance[12]={1,-1,0,0,1,1,2,3,3,4,4,5}

闰年:balance[12]={1, 0,1,1,2,2,3,4,4,5,5,6}

进行补偿的时候只用加 balance[month-1]就行了

最后的算法为 answer=30*(month-1) + date + balance[month-1] + ifLeapYear(year)

int ifLeapYear(int year)是一个你实现的函数 如果是闰年返回1,不是就返回0

这样的效率更好些

public class Year {

publ