ปัญหา หรือว่า Bug ของ C#.NET?

ในห้อง 'คอมพิวเตอร์ & อินเตอร์เน็ต' ตั้งกระทู้โดย ledphong, 19 พฤศจิกายน 2014.

  1. ledphong

    ledphong เป็นที่รู้จักกันดี

    วันที่สมัครสมาชิก:
    28 มีนาคม 2009
    โพสต์:
    1,425
    ค่าพลัง:
    +165
    การหาวันที่ทำงานของ dateTimePicker1 กับ dateTimePicker2
    ==================================
    โดยไม่นับวันหยุดราชการ
    ==================================
    //====================วันหยุดราชการ===========================================
    DateTime d1 = DateTime.Parse("1/1/2014");//วันที่ 1 มกราคม 2557 เป็นวันขึ้นปีใหม่ไทย
    DateTime d2 = DateTime.Parse("6/4/2014");//วันที่ 6 เมษายน 2557 เป็นวันจักรี
    DateTime d3 = DateTime.Parse("13/4/2014");//วันที่ 13 เมษายน 2557 เป็นวันสงกรานต์
    DateTime d4 = DateTime.Parse("5/5/2014");//วันที่ 5 พฤษภาคม 2557 เป็นวันฉัตรมงคล
    DateTime d5 = DateTime.Parse("12/8/2014");//วันที่ 12 สิงหาคม 2557 เป็นวันแม่แห่งชาติ
    DateTime d6 = DateTime.Parse("23/10/2014");//วันที่ 23 ตุลาคม 2557 เป็นวันปิยมหาราช
    DateTime d7 = DateTime.Parse("5/12/2014");//วันที่ 5 ธันวาคม 2557 เป็นวันพ่อแห่งชาติ
    DateTime d8 = DateTime.Parse("10/12/2014");//วันที่ 10 ธันวาคม 2557 เป็นวันรัฐธรรมนูญ
    //=========================================================================
     

    ไฟล์ที่แนบมา:

    • CPP1.png
      CPP1.png
      ขนาดไฟล์:
      12.3 KB
      เปิดดู:
      91
    • CPP2.png
      CPP2.png
      ขนาดไฟล์:
      184.7 KB
      เปิดดู:
      65
    • CPP3.png
      CPP3.png
      ขนาดไฟล์:
      193.9 KB
      เปิดดู:
      84
    • CPP4.png
      CPP4.png
      ขนาดไฟล์:
      168 KB
      เปิดดู:
      57
    แก้ไขครั้งล่าสุดโดยผู้ดูแล: 19 พฤศจิกายน 2014
  2. ledphong

    ledphong เป็นที่รู้จักกันดี

    วันที่สมัครสมาชิก:
    28 มีนาคม 2009
    โพสต์:
    1,425
    ค่าพลัง:
    +165
    C#.NET
    ======================
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;

    namespace ExamHoliday
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    StartPosition = FormStartPosition.CenterScreen;
    }

    private void button1_Click(object sender, EventArgs e)
    {
    if (comboBox1.Text == "")
    {
    MessageBox.Show("กรุณาเลือก ปีงบประมาณ", "รายงานสถานะ");
    return;
    }
    else
    {
    if (comboBox1.Text == "2557") // ปีงบประมาณ 2557
    {
    DateTime start1 = DateTime.Parse("1/1/2014");
    DateTime end1 = DateTime.Parse("31/12/2014");
    int count = 0;

    if (start1.Date <= end1.Date)
    {
    DateTime start = dateTimePicker1.Value;
    DateTime end = dateTimePicker2.Value;
    //====================วันหยุดราชการ===========================================
    DateTime d1 = DateTime.Parse("1/1/2014");//วันที่ 1 มกราคม 2557 เป็นวันขึ้นปีใหม่ไทย
    DateTime d2 = DateTime.Parse("6/4/2014");//วันที่ 6 เมษายน 2557 เป็นวันจักรี
    DateTime d3 = DateTime.Parse("13/4/2014");//วันที่ 13 เมษายน 2557 เป็นวันสงกรานต์
    DateTime d4 = DateTime.Parse("5/5/2014");//วันที่ 5 พฤษภาคม 2557 เป็นวันฉัตรมงคล
    DateTime d5 = DateTime.Parse("12/8/2014");//วันที่ 12 สิงหาคม 2557 เป็นวันแม่แห่งชาติ
    DateTime d6 = DateTime.Parse("23/10/2014");//วันที่ 23 ตุลาคม 2557 เป็นวันปิยมหาราช
    DateTime d7 = DateTime.Parse("5/12/2014");//วันที่ 5 ธันวาคม 2557 เป็นวันพ่อแห่งชาติ
    DateTime d8 = DateTime.Parse("10/12/2014");//วันที่ 10 ธันวาคม 2557 เป็นวันรัฐธรรมนูญ
    //=========================================================================

    for (var i = start; i <= end; i = i.AddDays(1)) // หรือ i.AddHours(1))
    {
    //========ไม่นับวันหยุดราชการ===========
    if (((((((((i.DayOfWeek != DayOfWeek.Saturday
    && i.DayOfWeek != DayOfWeek.Sunday)
    && i.DayOfYear != d1.DayOfYear)
    && i.DayOfYear != d2.DayOfYear)
    && i.DayOfYear != d3.DayOfYear)
    && i.DayOfYear != d4.DayOfYear)
    && i.DayOfYear != d5.DayOfYear)
    && i.DayOfYear != d6.DayOfYear)
    && i.DayOfYear != d7.DayOfYear)
    && i.DayOfYear != d8.DayOfYear)
    //=================================
    {
    //if (i.TimeOfDay.Hours >= 8 && i.TimeOfDay.Hours <= 16)
    //{
    // count++;//นับจาก 8.00 น.-16.00 น.
    //}
    count++;
    }
    }
    label1.Text = "[จำนวนวันทำงาน : " + count.ToString() + " วัน]";
    }
    }
    else
    {
    if (comboBox1.Text == "2558")// ปีงบประมาณ 2558
    {
    DateTime start1 = DateTime.Parse("1/1/2015");
    DateTime end1 = DateTime.Parse("31/12/2015");
    int count = 0;

    if (start1.Date <= end1.Date)
    {
    DateTime start = dateTimePicker1.Value;
    DateTime end = dateTimePicker2.Value;
    //====================วันหยุดราชการ===========================================
    DateTime d1 = DateTime.Parse("1/1/2015");//วันที่ 1 มกราคม 2558 เป็นวันขึ้นปีใหม่ไทย
    DateTime d2 = DateTime.Parse("6/4/2015");//วันที่ 6 เมษายน 2558 เป็นวันจักรี
    DateTime d3 = DateTime.Parse("13/4/2015");//วันที่ 13 เมษายน 2558 เป็นวันสงกรานต์
    DateTime d4 = DateTime.Parse("5/5/2015");//วันที่ 5 พฤษภาคม 2558 เป็นวันฉัตรมงคล
    DateTime d5 = DateTime.Parse("12/8/2015");//วันที่ 12 สิงหาคม 2558 เป็นวันแม่แห่งชาติ
    DateTime d6 = DateTime.Parse("22/10/2015");//วันที่ 23 ตุลาคม 2558 เป็นวันปิยมหาราช @@ Bug ตรงนี้ ต้องแก้เป็น 22/10/2015 จึงจะถูกต้อง
    DateTime d7 = DateTime.Parse("5/12/2015");//วันที่ 5 ธันวาคม 2558 เป็นวันพ่อแห่งชาติ
    DateTime d8 = DateTime.Parse("10/12/2015");//วันที่ 10 ธันวาคม 2558 เป็นวันรัฐธรรมนูญ
    //=========================================================================

    for (var i = start; i <= end; i = i.AddDays(1)) // หรือ i.AddHours(1))
    {
    //========ไม่นับวันหยุดราชการ===========
    if (((((((((i.DayOfWeek != DayOfWeek.Saturday
    && i.DayOfWeek != DayOfWeek.Sunday)
    && i.DayOfYear != d1.DayOfYear)
    && i.DayOfYear != d2.DayOfYear)
    && i.DayOfYear != d3.DayOfYear)
    && i.DayOfYear != d4.DayOfYear)
    && i.DayOfYear != d5.DayOfYear)
    && i.DayOfYear != d6.DayOfYear)
    && i.DayOfYear != d7.DayOfYear)
    && i.DayOfYear != d8.DayOfYear)
    //=================================
    {
    //if (i.TimeOfDay.Hours >= 8 && i.TimeOfDay.Hours <= 16)
    //{
    // count++;//นับจาก 8.00 น.-16.00 น.
    //}
    count++;
    }
    }
    label1.Text = "[จำนวนวันทำงาน : " + count.ToString() + " วัน]";
    }
    }
    }
    }
    }

    private void Form1_Load(object sender, EventArgs e)
    {
    label1.Text = "[จำนวนวันทำงาน : 0 วัน]";
    }
    }
    }
     

แชร์หน้านี้

Loading...