01/10/2018, 17:27

Kiểm tra tính hợp lệ của một ngày nhập vào trong C#

Ở ví dụ minh họa bên dưới, Góc Kinh Nghiệm sẽ trình bày cách kiểm tra giá trị nhập vào có phải là một ngày/tháng/năm hợp lệ hay không. Nếu không hợp lệ sẽ xuất ra thông báo là “Ngày không hợp lệ” và xóa sạch ngày tháng năm vừa nhập vào. Ví dụ bên dưới sẽ sử dụng đối tượng ...

Ở ví dụ minh họa bên dưới, Góc Kinh Nghiệm sẽ trình bày cách kiểm tra giá trị nhập vào có phải là một ngày/tháng/năm hợp lệ hay không. Nếu không hợp lệ sẽ xuất ra thông báo là “Ngày không hợp lệ” và xóa sạch ngày tháng năm vừa nhập vào.

Ví dụ bên dưới sẽ sử dụng đối tượng MaskedTextBox có tên là MaskedTextBox1 (thay vì dùng TextBox thì MaskedTextBox thích hợp hơn trong việc dữ liệu đầu vào là ngày/tháng/năm)

Dưới đây là code hoàn chỉnh, được viết trên VS2005

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms; 

namespace MyProject.DateTimeIssue
{
   public partial class FormCheckDate : Form
   {
      public FormCheckDate()
      {
         InitializeComponent();
         maskedTextBox1.Mask = "00/00/0000";
         maskedTextBox1.KeyUp += new KeyEventHandler(msDate_KeyUp);
      }

      void msDate_KeyUp(object sender, KeyEventArgs e)
      {
         if (maskedTextBox1.MaskFull)
         {
            try
            {
               DateTime.ParseExact(maskedTextBox1.Text, "dd/MM/yyyy", null);
            }
            catch
            {
               MessageBox.Show("Ngày không hợp lệ");
               maskedTextBox1.ResetText();
            }
         }
      }
   }
}

Sau chạy được chương trình, Góc Kinh Nghiệm thu được kết quả như sau:

  • Nếu bạn nhập vào 30/02/2011 thì sẽ xuất hiện thông báo “Ngày không hợp lệ”
  • Ngược lại bạn nhập vào 20/02/2011 thì sẽ không xuất hiện thông báo

Góc Kinh Nghiệm chúc các bạn thành công!  :lol:


0