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