逝去的時間(java)

  1. //逝去的時間計算程序
  2. import java.util.*;
  3. // ---------- 主程序 -----------------------------------
  4. public class LostTime {
  5.     public static void main(String[] args) {
  6.         System.out.println("--------------- “逝去的時間”計算程序 --------------------");
  7.         Scanner in = new Scanner(System.in);
  8.         System.out.print("請輸入出生年月日(以空格隔開): ");
  9.         int y1 = in.nextInt();
  10.         int m1 = in.nextInt();
  11.         int d1 = in.nextInt();
  12.         System.out.print("請輸入現在年月日(以空格隔開): ");
  13.         int y2 = in.nextInt();
  14.         int m2 = in.nextInt();
  15.         int d2 = in.nextInt();
  16.         if (y1 > y2)
  17.             System.out.println("對不起,可能輸入有誤,程序將關閉。");
  18.         else {
  19.             //新建類
  20.             TimeStatistic ts = new TimeStatistic();
  21.             //計算年齡
  22.             int age = y2-y1;
  23.             //計算度過完整年的天數和
  24.             int days = ts.daysForYears(age, y2);
  25.             //計算生日在當年的第幾天
  26.             int days_birth = ts.numForYear(y1,m1,d1);
  27.             //計算今天是今年的第幾天
  28.             int days_now = ts.numForYear(y2,m2,d2);
  29.             //計算出生至今總天數和
  30.             int days_all = days + days_birth + days_now;
  31.             //結束程序,輸出結果
  32.             System.out.println("從您出生至今,已經過去了 " + days_all 
  33.                 + " 天," + (days_all * 24
  34.                 + " 小時," + (days_all*24*60) + " 分鐘。");
  35.             System.out.println("逝去的時光,已經成為您的財富;");
  36.             System.out.println("請繼續珍愛您周圍的人,一起演繹人生之旅。Good Luck!");
  37.             System.out.println("-----------------------The End-----------------------------");
  38.         }
  39.     }
  40. }
  41. // ---------- 類部分 -----------------------------------
  42. class TimeStatistic {
  43.     //除去出生年和今年,其余所有完整年的時間統計
  44.     public int daysForYears(int age, int year_now) {
  45.         int[] years = new int[age-1];
  46.         for (int i=0; i<(age-1); i++) {
  47.             year_now--;
  48.             years[i]=year_now;
  49.         }
  50.         int days=0;
  51.         for(int e:years){
  52.             if(e%4==0 && e%400!=0)
  53.                 days+=366;
  54.             else
  55.                 days+=365;
  56.         }
  57.         return days;
  58.     }
  59.     //計算今天是今年的第幾天
  60.     public int numForYear(int y, int m, int d) {
  61.         boolean lear_year;
  62.         //判斷是否閏年,如果是,2月有29天,否則2月有28天
  63.         if (y % 4 == 0 && y % 400 != 0)
  64.             lear_year=true;
  65.         else
  66.             lear_year=false;
  67.         //設置月份天數
  68.         int[] num_m = new int[12];
  69.         //判斷月份,1 3 5 7 8 10 12有31天,
  70.         //其余月份30天,閏年2月29天,非閏年2月28天
  71.         num_m[0] = 31;                      //先把1月設置成31天
  72.         for (int i=1; i<12; i++) {
  73.             if (i==1 && lear_year)          //閏年的2月
  74.                 num_m[i]=29;
  75.             else if (i==1 && !lear_year)    //非閏年的2月
  76.                 num_m[i]=28;
  77.             else if ((i+1)%2!=0 && i<7)     //1 3 5 7月
  78.                 num_m[i]=31;
  79.             else if ((i+1)%2==0 && i>=7)    //8 10 12月
  80.                 num_m[i]=31;
  81.             else                            //其余月份
  82.                 num_m[i]=30;
  83.         }
  84.         int x = 0;
  85.         for (int i = 0; i<(m-1); i++)
  86.             x += num_m[i];
  87.         x += d;
  88.         return x;
  89.     }
  90. }
  91. // ---------- 代碼完結 -----------------------------------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值