JAVA那个高手能用数组(一维或二维)输出这天上这年的第几天啊。。急需!!
来源:百度知道 编辑:UC知道 时间:2024/09/28 11:47:13
用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