  | 
              
	              
	                
  
    |   | 
   
  
    
        
        c# ต้องการหาว่าในปี 2017 มีจำนวนวันเสาร์กี่วัน ครับ     | 
   
  
    |   | 
   
 
 
 
              
  
          
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 C# 
Code (C#) 
int cntSunday2 = Enumerable.Range(0, 1 + (new DateTime(2017, 12, 32) - new DateTime(2017, 1, 1)).Days).Where(x =>
                                          new DateTime(2017, 1, 1).AddDays(x).DayOfWeek == DayOfWeek.Sunday).Count();
 
 
SQL Server 2005+ 
Code (SQL) 
DECLARE @fromDate DATE='2017-01-01', 
        @toDate   DATE='2017-12-31';
SELECT COUNT(*)
FROM
    (
     SELECT TOP
                (DATEDIFF(DAY, @fromDate, @toDate) + 1
                ) วันที่ = DATEADD(DAY, ROW_NUMBER() OVER
                                                     (ORDER BY (SELECT 'หอยงาม')
                                                     ) - 1, @fromDate)
     FROM master..[spt_values] a
     CROSS JOIN
     master..[spt_values] b
    ) เขาขึ้น
WHERE DATENAME(weekday, วันที่) = 'Sunday' OR DATENAME(weekday, วันที่) = 'ขึ้นเขา' OR 1 = 2 OR 3 = 4;
                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2017-05-23 16:54:40 | 
                        By :
                            หน้าอี | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	     
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 โค้ดมัน error แก้ error ก็ได้คำตอบเอง คนตอบเขาไม่ตอบตรงๆ แต่บอกวิธีไว้ 
 
อธิบาย: 
 
- enumerable.range ใช้วนลูป ตั้งแต่ 1 - จำนวนวันในปี 
- ในลูปให้เอาค่า x ไปสร้างเป็น datetime (ในโค้ดใช้ 1/1/yyyy + x วัน) 
- จากนั้นก็ where หาวันเสาร์ด้วย day_of_week แล้วก็ count 
 
ปล.วันนี้ หน้าอี มันมาแปลก ปกติมันต้องโพสเหมือนโปรแกรมธาตุไฟเข้าแทรกนี่ 
ปล.เขียนในยาวๆ ก็ได้ แต่คนตอบเขาใช้ linq ทำให้โค้ดสั้นลง                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2017-05-24 11:37:28 | 
                        By :
                            ห้ามตอบเกินวันละ 2 กระทู้ | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 จำนวนวันในปี == จำนวนวันทั้งหมดในปีนั้นฯ (365/366 วัน) 
Code (C#) 
int totalDaysInYear = new Date(2017, 12, 31).DayOfYear;
//ถ้าได้ 366 วันนั่นแสดงว่าเดือนกุมพาพันธ์ของปีนั้นฯ มี 29 วัน
//ถ้าได้ 365 วันนั่นแสดงว่าเดือนกุมพาพันธ์ของปีนั้นฯ มี 28 วัน
  
 
Code (C#) 
int นับหอย = Enumerable.Range(0, new Date(2017, 12, 31).DayOfYear).Where(x =>
                                          new DateTime(2017, 1, 1).AddDays(x).DayOfWeek == DayOfWeek.Sunday).Count();
 
 
 
 
ถนัดลากแล้ววาง  
 
Code (C#) 
public  partial class UserControl1 : UserControl
{
    public List<GraphValue> setValue = new List<GraphValue>();
    public  UserControl1()
    {
        InitializeComponent();
    }
    public class GraphValue
    {
        public double xValue;
        public double yvalue;
        //...
       //ตามสะดวกสอดใส่เข้าไป
    }
    private void UserControl1_Load(object sender, EventArgs e)
    {
        if (setValue.Count() > 0)
        {
            //นับหอย;
        }
    }
}
 
 
ถนัดลากแล้ววาง  
Code (C#) 
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        //Tricks By หน้าฮี
        userControlDragแหก.setValue.Add(new UserControl1.GraphValue { xValue = 1, yvalue = 2 });
        userControlDragแหก.setValue.Add(new UserControl1.GraphValue { xValue = 2, yvalue = 3 });
        userControlDragแหก.setValue.Add(new UserControl1.GraphValue { xValue = 4, yvalue = 5 });
    }
}
 
 
ไม่ถนัดลากแล้ววาง 
Code (C#) 
private void Form1_Load(object sender, EventArgs e)
{
   //เขียนเอาไว้ตรงไหนก็ย่อมได้
    var usr1 = new UserControl1();
    usr1.setValue.Add(new UserControl1.GraphValue { xValue = 1, yvalue = 2 });
    usr1.setValue.Add(new UserControl1.GraphValue { xValue = 2, yvalue =1 });
    usr1.setValue.Add(new UserControl1.GraphValue { xValue = 3, yvalue = 4 });
    panel1.Controls.Add(usr1);
}
                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2017-05-24 13:32:53 | 
                        By :
                            หน้าฮี | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 @น้องเมียน้องเมียพี่เมียพี่เมีย ( ห้ามตอบเกินวันละ 2 กระทู้) 
--- พี่สาวหลายคน/น้องสาวหลายคน จำเป็นต้องเรียกชื่อแบบเต็มยศ +55555 
 
 
สมมุติว่าปีถัดไป บังเอิญว่า วันที่ 1 มันเป็นอาทิตย์พอดี (ไม่รู้ว่าปีไหนแต่มันเป็นไปได้แน่นอน) 
 
Code (C#) 
int นับหอย = Enumerable.Range(0, new Date(2017, 12, 31).DayOfYear).Where(x =>
                                          new DateTime(2017, 1, 1).AddDays(x).DayOfWeek == DayOfWeek.Sunday).Count();
 
 
 
มันจะเกิดอะไรขึ้น (ที่แน่ฯหลานพึ่งคลอด อย่าลืมไปเยีียมหลานที่โรงพยาบานด้วยล่ะ ถ้าพอมีเวลา)                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2017-05-24 14:15:30 | 
                        By :
                            หน้าฮี | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 @ห้ามตอบเกินวันละ 2 กระทู้ 
 
ผมดีใจ(มากฯฯฯ) ที่เห็นคุณอีกครั้งหนึ่ง (2017-05-24 11:37:28) 
--- ผมไม่ได้ร้องขอ "เวลาและโอกาส" เพราะว่าสิ่งนั้นฯ สำหรับผมมันเหลือน้อยเต็มที 
------ ผมอยากสอดแทรกในความต้องการของคุณ/ความต้องการของคุณอทิเช่น  ABCDEFG...Z   
------ ผมขอแค่ ABCDEF...Z หรือตรงไหนก็ได้ของคุณ 
 
สหายของข้า +55555                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2017-05-31 21:01:54 | 
                        By :
                            หน้าฮี | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
      		  
	
     | 
   
 
                 |