視窗程式
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace _40173034H_期中考第二題
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnFunction_Click(object sender, EventArgs e)
{
MyDateTime calendar = new MyDateTime();
calendar.message = txtMessage;
calendar._year = Convert.ToInt16(txtYear.Text);
switch (cmb_Month.SelectedIndex)
{
case 0:
calendar._month = 1;
break;
case 1:
calendar._month = 2;
break;
case 2:
calendar._month = 3;
break;
case 3:
calendar._month = 4;
break;
case 4:
calendar._month = 5;
break;
case 5:
calendar._month = 6;
break;
case 6:
calendar._month = 7;
break;
case 7:
calendar._month = 8;
break;
case 8:
calendar._month = 9;
break;
case 9:
calendar._month = 10;
break;
case 10:
calendar._month = 11;
break;
case 11:
calendar._month = 12;
break;
}
switch (cmb_Day.SelectedIndex)
{
case 0:
calendar._day = 1;
break;
case 1:
calendar._day = 2;
break;
case 2:
calendar._day = 3;
break;
case 3:
calendar._day = 4;
break;
case 4:
calendar._day = 5;
break;
case 5:
calendar._day = 6;
break;
case 6:
calendar._day = 7;
break;
case 7:
calendar._day = 8;
break;
case 8:
calendar._day = 9;
break;
case 9:
calendar._day = 10;
break;
case 10:
calendar._day = 11;
break;
case 11:
calendar._day = 12;
break;
case 12:
calendar._day = 13;
break;
case 13:
calendar._day = 14;
break;
case 14:
calendar._day = 15;
break;
case 15:
calendar._day = 16;
break;
case 16:
calendar._day = 17;
break;
case 17:
calendar._day = 18;
break;
case 18:
calendar._day = 19;
break;
case 19:
calendar._day = 20;
break;
case 20:
calendar._day = 21;
break;
case 21:
calendar._day = 22;
break;
case 22:
calendar._day = 23;
break;
case 23:
calendar._day = 24;
break;
case 24:
calendar._day = 25;
break;
case 25:
calendar._day = 26;
break;
case 26:
calendar._day = 27;
break;
case 27:
calendar._day = 28;
break;
case 28:
calendar._day = 29;
break;
case 29:
calendar._day = 30;
break;
case 30:
calendar._day = 31;
break;
}
if (checkbox_Check.Checked)
{
calendar.CheckLeap();
}
if (checkbox_DaysOfMonth.Checked)
{
calendar.CheckDay();
}
if (checkbox_WeekDay.Checked)
{
calendar.WeekDay(calendar._year,calendar._month,calendar._day);
calendar.ShowWeek();
}
if(checkbox_Calendar.Checked)
{
calendar.calendar(calendar._year,calendar._month,calendar._day);
}
}
private void btnClean_Click(object sender, EventArgs e)
{
txtMessage.Text = null;
}
}
}
MyDateTime
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace _40173034H_期中考第二題
{
class MyDateTime
{
public int _year;
public int _month;
public int _day;
public TextBox message;
public bool IsLeap()
{
if (_year % 400 == 0 || (_year % 4 == 0 && _year % 100 != 0))
{
return true;
}
else
{
return false;
}
}
public int DaysOfMonth(int a, int b, int c)
{
IsLeap();
int day = 0;
if (b == 2)
{
if (IsLeap() == true)
{
return day = 29;
}
else
{
return day = 28;
}
}
else if (b == 1 || b == 3 || b == 5 || b == 7 || b == 8 || b == 10 || b == 12)
{
return day = 31;
}
else
{
return day = 30;
}
}
public void ShowMonthDay()
{
int day = 0;
DaysOfMonth(_year,_month,_day);
message.Text += _year + "/" + _month + "/" + _day + "是" + day + "天";
message.Text += Environment.NewLine;
}
public bool IsValid()
{
IsLeap();
if (_month == 2)
{
if (IsLeap() == true)
{
if (_day > 29)
{
return false;
}
else
{
return true;
}
}
else
{
if (_day > 28)
{
return false;
}
else
{
return true;
}
}
}
else if (_month == 4 || _month == 6 || _month == 9 || _month == 11)
{
if (_day > 30)
{
return false;
}
else
{
return true;
}
}
else
{
return true;
}
}
public void CheckLeap()
{
if (IsLeap() == true)
{
message.Text += _year + "/" + _month + "/" + _day + "是閏年";
message.Text += Environment.NewLine;
}
else if (IsLeap() == false)
{
message.Text += _year + "/" + _month + "/" + _day + "是平年";
message.Text += Environment.NewLine;
}
}
public void CheckDay()
{
if (IsValid() == true)
{
message.Text += _year + "/" + _month + "/" + _day + "合法";
message.Text += Environment.NewLine;
}
else
{
message.Text += _year + "/" + _month + "/" + _day + "不合法";
message.Text += Environment.NewLine;
}
}
public int WeekDay(int p, int q, int r)
{
double week=0;
int Y=0,m,d;
double y,c;
if(_month==1||_month==2)
{
Y = _year - 1;
}
else
{
Y = _year;
}
d=_day;
m = ((_month + 9) % 12) + 1;
y = Y % 100;
c = Y;
while(c>=100)
{
c = Y / 100;
}
week = (d + Convert.ToInt16(Math.Floor(2.6*m-0.2))+ y +Convert.ToInt16(Math.Floor(y/4))+Convert.ToInt32(Math.Floor(c/4))-2*c)%7;
if(week<=0)
{
week=week+7;
}
return (int)week;
}
public void ShowWeek()
{
int week;
week=WeekDay(_year,_month,_day);
switch ((int)week)
{
case 1:
message.Text += _year + "/" + _month + "/" + _day + "星期一";
message.Text += Environment.NewLine;
break;
case 2:
message.Text += _year + "/" + _month + "/" + _day + "星期二";
message.Text += Environment.NewLine;
break;
case 3:
message.Text += _year + "/" + _month + "/" + _day + "星期三";
message.Text += Environment.NewLine;
break;
case 4:
message.Text += _year + "/" + _month + "/" + _day + "星期四";
message.Text += Environment.NewLine;
break;
case 5:
message.Text += _year + "/" + _month + "/" + _day + "星期五";
message.Text += Environment.NewLine;
break;
case 6:
message.Text += _year + "/" + _month + "/" + _day + "星期六";
message.Text += Environment.NewLine;
break;
case 7:
message.Text += _year + "/" + _month + "/" + _day + "星期天";
message.Text += Environment.NewLine;
break;
}
}
public void calendar(int p,int q,int r)
{
message.Text += "\tSUN\tMON\tTUE\tWED\tTHR\tFRI\tSAT";
message.Text += Environment.NewLine;
int dayStrat=1;
int monthDay=DaysOfMonth(_year,_month,_day);
int stratWeek = WeekDay(_year,_month,1);
int i;
int j=0;
for (i = 0; i < stratWeek ; i++)
{
message.Text += "\t";
}
for (dayStrat = stratWeek; dayStrat < (monthDay+dayStrat);dayStrat++ )
{
j++;
message.Text += j.ToString()+ "\t";
if ((dayStrat) % 7 == 0)
{
message.Text += Environment.NewLine;
}
}
}
}
}
沒有留言:
張貼留言