java调用系统时间函数_JAVA自学笔记:不使用系统函数来计算日期处于当年的第多少天...
前段時(shí)間練習(xí)了一個(gè)求閏年的功能,現(xiàn)在就可以用上啦,這次寫一個(gè)不借助類庫的時(shí)間函數(shù),利用基礎(chǔ)代碼寫一個(gè)計(jì)算求日期處于當(dāng)年的第多少天的函數(shù)。
雖然也有簡單的方法,例如直接定義每月的天數(shù)累加,然后加上當(dāng)月的天數(shù)就可以算出當(dāng)天處于當(dāng)年的第多少天。但是這次咋們還是換種方法,雖然麻煩點(diǎn),但好歹帶點(diǎn)邏輯性。
首先我們需要一個(gè)數(shù)組,專門來存放指定年份的日歷天數(shù)(必須自帶閏年檢測(cè)啦,不然二月份天數(shù)就不好算啦)。這里我們就新建一個(gè)函數(shù)好了,利用for循環(huán)和if判斷,來按照月份的大小月規(guī)則來存放每月天數(shù),然后讓這個(gè)函數(shù)返回int數(shù)組值。
接下來就是輸入輸出啦,按照慣例,我們還是添加了輸入格式檢錯(cuò)的功能,月份肯定不會(huì)超過12或者小余1的吧,天數(shù)也不能超過當(dāng)月的天數(shù),不然要報(bào)錯(cuò)重新輸入。
接下來直接利用for循環(huán)給總天數(shù)值days累加,例如7月8號(hào),那么就是7月前(不包括7月)月份的所有天數(shù),加上7月當(dāng)月的day日期,即可得出總天數(shù)。
下面來看看代碼吧:
import java.util.Scanner;
public class Test010 {
public static void main(String args[]){
Test010 t10=new Test010();
int days=0;
Scanner reader=new Scanner(System.in);
System.out.print("請(qǐng)輸入年份:");
int year=reader.nextInt();
int[] monthA=t10.calendar(year);
System.out.print("請(qǐng)輸入月份:");
int month=reader.nextInt();
System.out.print("請(qǐng)輸入當(dāng)月日期:");
int day=reader.nextInt();
while(true){
if(month>12||month<1){
System.out.print("月份格式錯(cuò)誤,請(qǐng)重新輸入:");
month=reader.nextInt();
continue;
}else if(day>monthA[month]||day<1){
System.out.print("日期范圍錯(cuò)誤,請(qǐng)重新輸入:");
day=reader.nextInt();
continue;
}else{
break;
}
}
for(int i=1;i
days+=monthA[i];
}
days+=day;
System.out.printf("%d年%d月%d日是當(dāng)年的第%d天",year,month,day,days);
}
public int[] calendar(int year){?? ?//當(dāng)年日歷
int monthA[]=new int[13];
for(int i=1;i
if(i==1||i==3||i==5||i==7||i==8||i==10||i==12){
monthA[i]=31;
}else if(i==4||i==6||i==9||i==11){
monthA[i]=30;
}else{
if(year%4==0 && year%100!=0 || year%400==0){
monthA[i]=29;
}else{
monthA[i]=28;
}
}
}
return monthA;
}
}
總結(jié)
以上是生活随笔為你收集整理的java调用系统时间函数_JAVA自学笔记:不使用系统函数来计算日期处于当年的第多少天...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 邹妓是谁画的呢?
- 下一篇: mysql启动后在哪里编程_启动mysq