2015年5月4日 星期一

[2015][Quiz]MidExam_40173034H

視窗程式
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;
                    }
                    
                }
        }
    }
}

沒有留言:

張貼留言