main program
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Homework3
{
class Program
{
static void Main(string[] args)
{
MyDateTime date = new MyDateTime();
while(true)
{
Console.WriteLine("Input Year");
date.Year = int.Parse(Console.ReadLine());
Console.WriteLine("Input Month");
date.Month = int.Parse(Console.ReadLine());
Console.WriteLine("Input Day");
date.Day = int.Parse(Console.ReadLine());
if(date.isLegal()==false)
{
Console.WriteLine("{0},{1},{2} is not a legal date!", date.Year, date.Month, date.Day);
Console.WriteLine("Input Again!");
Console.ReadLine();
Console.Clear();
continue;
}
Console.WriteLine("************************************************************");
switch(date.isLeap())
{
case true:
Console.WriteLine("Year {0} is a leap year!",date.Year);
break;
case false:
Console.WriteLine("Year {0} is not a leap year!",date.Year);
break;
}
Console.WriteLine("Days of year {0} = {1}",date.Year, date.DaysOfYear());
Console.WriteLine("Days of {0}/{1} = {2}", date.Year, date.Month,date.DaysOfMonth());
Console.WriteLine("{0}/{1}/{2} is {3}", date.Year, date.Month, date.Day, date.WeekDay());
Console.WriteLine("************************************************************");
Console.WriteLine("Again? Y/N");
char select = Convert.ToChar(Console.ReadLine());
if(select!=('y') && select!=('Y'))
{
break;
}
Console.Clear();
}
Console.WriteLine("Program end!");
Console.ReadLine();
}
}
}
MyDateTime
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Homework3
{
class MyDateTime
{
//field
public int Year;
public int Month;
public int Day;
//Method
public bool isLeap()
{
if (Year % 400 == 0 || (Year % 4 == 0 && Year % 100 != 0))
{
return true;
}
else
{
return false;
}
}
public void Print()
{
Console.WriteLine("{0}/{1}/{2}", Year, Month, Day);
}
public int DaysOfYear()
{
if (isLeap() == true)
{
return 366;
}
else
{
return 365;
}
}
public int DaysOfMonth()
{
switch(Month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
case 4:
case 6:
case 9:
case 11:
return 30;
case 2:
if(isLeap()==true)
{
return 29;
}
else
{
return 28;
}
default:
return 0;
}
}
public bool isLegal()
{
switch (Month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if (Day > 0 && Day <= 31)
{
return true;
}
else
{
return false;
}
case 4:
case 6:
case 9:
case 11:
if (Day > 0 && Day <= 30)
{
return true;
}
else
{
return false;
}
case 2:
if (isLeap() == true)
{
if (Day > 0 && Day <= 29)
{
return true;
}
else
{
return false;
}
}
else
{
if (Day > 0 && Day <= 28)
{
return true;
}
else
{
return false;
}
}
default:
return false;
}
}
public string WeekDay()
{
if (Month == 1 || Month == 2) //利用基姆拉爾森公式,1.2月當作去年的13.14月
{
Year -= 1;
Month += 12;
}
int temp = (Year + Year / 4 + Year / 400 - Year / 100 + 2 * Month + 3 * (Month + 1) / 5 + Day + 1) % 7;
switch (temp)
{
case 0:
return "Sunday";
case 1:
return "Monday";
case 2:
return "Tuesday";
case 3:
return "Wednesday";
case 4:
return "Thursday";
case 5:
return "Friday";
case 6:
return "Saturday";
default:
return "false";
}
}
}
}
沒有留言:
張貼留言