輸入某人出生日期,計算年齡和距60歲的天數

kewlgrl發表於2016-03-25

問題及程式碼:

/*     
* Copyright (c) 2016, 煙臺大學計算機與控制工程學院     
* All rights reserved.     
* 檔名稱:date.cpp                           
* 作    者:單昕昕                                 
* 完成日期:2016年3月25日     
* 版 本 號:v1.0                  
* 問題描述:輸入某人出生日期,計算年齡和距60歲的天數。
* 程式輸入:某人出生日期。 
* 程式輸出:計算年齡、距60歲的天數。
*/

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("請輸入出生日期(格式是xxxx-xx-xx):");
            string date = Console.ReadLine();
            string [] a=date.Split('-');
            DateTime dt = new DateTime(int.Parse(a[0]), int.Parse(a[1]), int.Parse(a[2]));
            TimeSpan ts = DateTime.Now - dt;
            int days = ts.Days,i,age=0;
            if(days<365)
                Console.Write("年齡是 0 歲。");
            for (i = int.Parse(a[0]); i < DateTime.Now.Year; ++i)
            {
                if (days < 365)
                    break;
                ++age;
                days-=(year(i));
            }

            Console.WriteLine("年齡是 " + age + " 歲。");
            if(age==60)
                Console.WriteLine("從現在到六十歲一共有 0 天。");
            else if (age > 60)
                Console.WriteLine("已經超過 60 歲了。");
            else
            {
                dt = new DateTime(int.Parse(a[0])+60, int.Parse(a[1]), int.Parse(a[2]));
                ts = dt - DateTime.Now;
                Console.WriteLine("從現在到六十歲一共有 "+ ts.Days +" 天。");
            }

            Console.ReadKey();  
        }
        public static int year(int year)
        {
            if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
                return 366;
            else
                return 365;
        }
    }
}


 

執行結果:

 

 

 

 

相關文章