怎么计算一年的天数 一年的天数怎么确定

2023-04-24 15:30:17

你们好,最近小未来发现有诸多的小伙伴们对于怎么计算一年的天数,一年的天数怎么确定这个问题都颇为感兴趣的,今天小活为大家梳理了下,一起往下看看吧。

1、 在编写代码之前,要适当考虑如何计算,而不是拿到一个题目,打开编译器就立刻开始做。首先,我们需要一个时间类型来封装我们的年、月、日属性,我们需要一些计算天数的方法。

2、 公历年,要区分闰年和平年,那么首先要有一个判断是不是闰年的函数。其次,我们要计算2002年到2017年有多少个平年和闰年,然后再计算这些年过去了多少天。

3、 最后还要加上2017年6月23日已经发生的时间,即计算从元旦到6月23日用了多少天,相应减去高估,3个月10天。

4、 但是,这几个月,天数也有变化。理清逻辑后再编码。

5、 如上所述,我们需要封装时间类。

6、 package day2.homework1;

7、 public class MyDate {

8、 int year;

9、 int month;

10、 int day;

11、 public MyDate(int year, int month, int day) {

12、 super();

13、 this.year=year;

14、 this.month=month;

15、 this.day=day;

16、 }

17、 public int getYear() {

18、 return year;

19、 }

20、 public void setYear(int year) {

21、 this.year=year;

22、 }

23、 public int getMonth() {

24、 return month;

25、 }

26、 public void setMonth(int month) {

27、 this.month=month;

28、 }

29、 public int getDay() {

30、 return day;

31、 }

32、 public void setDay(int day) {

33、 this.day=day;

34、 }

35、 }

36、 其次,判断今年是不是闰年。

37、 /**

38、 *获取年份是否是闰年。

39、 * @param year

40、 * @return

41、 */

42、 public boolean checkLeap(int year) {

43、 boolean flag=false;

44、 if(0==year%40!=year%100||0==year%400)

45、 {

46、 flag=true;

47、 }

48、 return flag;

49、 }

50、 获取一年中的天数

51、 /**

52、 *获取一年中的天数

53、 * @param year

54、 * @return

55、 */

56、 public int getDaysOfYear(int year) {

57、 int count=365;

58、 if(checkLeap(year))

59、 {

60、 count=366;

61、 }

62、 return count;

63、 }

64、 获取一个月中的天数。

65、 /**

66、 *获取一个月中的天数

67、 * @param month

68、 * @return

69、 */

70、 public int getDaysOfMonth(int year,int month) {

71、 int count=0;

72、 switch(month)

73、 {

74、 case 1:

75、 count=31;

76、 break;

77、 case 2:

78、 if(checkLeap(year))

79、 {

80、 count=29;

81、 }

82、 else

83、 {

84、 count=28;

85、 }

86、 break;

87、 case 3:

88、 count=31;

89、 break;

90、 case 4:

91、 count=30;

92、 break;

93、 case 5:

94、 count=31;

95、 break;

96、 case 6:

97、 count=30;

98、 break;

99、 case 7:

100、 count=31;

101、 break;

102、 case 8:

103、 count=31;

104、 break;

105、 case 9:

106、 count=30;

107、 break;

108、 case 10:

109、 count=31;

110、 break;

111、 case 11:

112、 count=30;

113、 break;

114、 case 12:

115、 count=31;

116、 break;

117、 }

118、 return count;

119、 }

120、 根据计算方法实现我们的算法。

121、 public int getDays() {

122、 int count=0;

123、 /**

124、 *计算某年-某年的具体天数。

125、 */

126、 for(int i=date1.year;idate2.year;i++)

127、 {

128、 count+=getDaysOfYear(i);

129、 }

130、 /**

131、 *将去年的月份相加。

132、 */

133、 for(int i=1;idate2.month;i++)

134、 {

135、 count+=getDaysOfMonth(date2.year,i);

136、 }

137、 /**

138、 *去年加入的天数

139、 */

140、 count+=date2.day;

141、 /**

142、 *减去第一年的时间。

143、 */

144、 for(int i=1;idate1.month;i++)

145、 {

146、 count-=getDaysOfMonth(date1.year,i);

147、 }

148、 count-=date1.day;

149、 return count;

150、 }

151、 //源代码类

152、 package day2.homework1;

153、 public class MyCalendar {

154、 MyDate date1;

155、 MyDate date2;

156、 public MyCalendar(MyDate date1, MyDate date2) {

157、 super();

158、 this.date1=date1;

159、 this.date2=date2;

160、 }

161、 public int getDays() {

162、 int count=0;

163、 /**

164、 *计算某年-某年的具体天数。

165、 */

166、 for(int i=date1.year;idate2.year;i++)

167、 {

168、 count+=getDaysOfYear(i);

169、 }

170、 /**

171、 *将去年的月份相加。

172、 */

173、 for(int i=1;idate2.month;i++)

174、 {

175、 count+=getDaysOfMonth(date2.year,i);

176、 }

177、 /**

178、 *去年加入的天数

179、 */

180、 count+=date2.day;

181、 /**

182、 *减去第一年的时间。

183、 */

184、 for(int i=1;idate1.month;i++)

185、 {

186、 count-=getDaysOfMonth(date1.year,i);

187、 }

188、 count-=date1.day;

189、 return count;

190、 }

191、 /**

192、 * 获取每个月的天数

193、 * @param month

194、 * @return

195、 */

196、 public int getDaysOfMonth(int year,int month) {

197、 int count=0;

198、 switch(month)

199、 {

200、 case 1:

201、 count=31;

202、 break;

203、 case 2:

204、 if(checkLeap(year))

205、 {

206、 count=29;

207、 }

208、 else

209、 {

210、 count=28;

211、 }

212、 break;

213、 case 3:

214、 count=31;

215、 break;

216、 case 4:

217、 count=30;

218、 break;

219、 case 5:

220、 count=31;

221、 break;

222、 case 6:

223、 count=30;

224、 break;

225、 case 7:

226、 count=31;

227、 break;

228、 case 8:

229、 count=31;

230、 break;

231、 case 9:

232、 count=30;

233、 break;

234、 case 10:

235、 count=31;

236、 break;

237、 case 11:

238、 count=30;

239、 break;

240、 case 12:

241、 count=31;

242、 break;

243、 }

244、 return count;

245、 }

246、 /**

247、 * 获取某年的天数

248、 * @param year

249、 * @return

250、 */

251、 public int getDaysOfYear(int year) {

252、 int count=365;

253、 if(checkLeap(year))

254、 {

255、 count=366;

256、 }

257、 return count;

258、 }

259、 /**

260、 * 获取该年是否是闰年

261、 * @param year

262、 * @return

263、 */

264、 public boolean checkLeap(int year) {

265、 boolean flag=false;

266、 if(0==year%40!=year%100||0==year%400)

267、 {

268、 flag=true;

269、 }

270、 return flag;

271、 }

272、 }

273、 //我们编写测试类进行测试

274、 package day2.homework1;

275、 public class TestMyCalendar {

276、 public static void main(String[] args) {

277、 MyDate date1=new MyDate(2002,03,10);

278、 MyDate date2=new MyDate(2017,06,23);

279、 MyCalendar calendar=new MyCalendar(date1,date2);

280、 System.out.println(calendar.getDays());

281、 }

282、 }

以上就是一年的天数怎么确定这篇文章的一些介绍,希望对大家有所帮助。

免责声明:本文来源网友投稿及网络整合仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。投诉邮箱:1765130767@qq.com。
本文地址: