天天讯息:怎么计算一年的天数_一年的天数怎么确定
来源:互联网    时间:2023-04-23 08:23:14

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

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、}

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

X 关闭

Copyright ©  2015-2022 每日手机网版权所有  备案号:浙ICP备2022016517号-15   联系邮箱:5 146 761 13 @qq.com