- //逝去的時間計算程序
- import java.util.*;
- // ---------- 主程序 -----------------------------------
- public class LostTime {
- public static void main(String[] args) {
- System.out.println("--------------- “逝去的時間”計算程序 --------------------");
- Scanner in = new Scanner(System.in);
- System.out.print("請輸入出生年月日(以空格隔開): ");
- int y1 = in.nextInt();
- int m1 = in.nextInt();
- int d1 = in.nextInt();
- System.out.print("請輸入現在年月日(以空格隔開): ");
- int y2 = in.nextInt();
- int m2 = in.nextInt();
- int d2 = in.nextInt();
- if (y1 > y2)
- System.out.println("對不起,可能輸入有誤,程序將關閉。");
- else {
- //新建類
- TimeStatistic ts = new TimeStatistic();
- //計算年齡
- int age = y2-y1;
- //計算度過完整年的天數和
- int days = ts.daysForYears(age, y2);
- //計算生日在當年的第幾天
- int days_birth = ts.numForYear(y1,m1,d1);
- //計算今天是今年的第幾天
- int days_now = ts.numForYear(y2,m2,d2);
- //計算出生至今總天數和
- int days_all = days + days_birth + days_now;
- //結束程序,輸出結果
- System.out.println("從您出生至今,已經過去了 " + days_all
- + " 天," + (days_all * 24)
- + " 小時," + (days_all*24*60) + " 分鐘。");
- System.out.println("逝去的時光,已經成為您的財富;");
- System.out.println("請繼續珍愛您周圍的人,一起演繹人生之旅。Good Luck!");
- System.out.println("-----------------------The End-----------------------------");
- }
- }
- }
- // ---------- 類部分 -----------------------------------
- class TimeStatistic {
- //除去出生年和今年,其余所有完整年的時間統計
- public int daysForYears(int age, int year_now) {
- int[] years = new int[age-1];
- for (int i=0; i<(age-1); i++) {
- year_now--;
- years[i]=year_now;
- }
- int days=0;
- for(int e:years){
- if(e%4==0 && e%400!=0)
- days+=366;
- else
- days+=365;
- }
- return days;
- }
- //計算今天是今年的第幾天
- public int numForYear(int y, int m, int d) {
- boolean lear_year;
- //判斷是否閏年,如果是,2月有29天,否則2月有28天
- if (y % 4 == 0 && y % 400 != 0)
- lear_year=true;
- else
- lear_year=false;
- //設置月份天數
- int[] num_m = new int[12];
- //判斷月份,1 3 5 7 8 10 12有31天,
- //其余月份30天,閏年2月29天,非閏年2月28天
- num_m[0] = 31; //先把1月設置成31天
- for (int i=1; i<12; i++) {
- if (i==1 && lear_year) //閏年的2月
- num_m[i]=29;
- else if (i==1 && !lear_year) //非閏年的2月
- num_m[i]=28;
- else if ((i+1)%2!=0 && i<7) //1 3 5 7月
- num_m[i]=31;
- else if ((i+1)%2==0 && i>=7) //8 10 12月
- num_m[i]=31;
- else //其余月份
- num_m[i]=30;
- }
- int x = 0;
- for (int i = 0; i<(m-1); i++)
- x += num_m[i];
- x += d;
- return x;
- }
- }
- // ---------- 代碼完結 -----------------------------------
逝去的時間(java)
最新推荐文章于 2021-09-20 23:37:27 发布