C#中的年、月、日、星期轉換方法集錦

//第1篇

1、DateTime   數字型    
  System.DateTime   currentTime=new   System.DateTime();    
   
  1.1   取當前年月日時分秒    
  currentTime=System.DateTime.Now;    


  1.2   取當前年    
  int   年=currentTime.Year;    


  1.3   取當前月    
  int   月=currentTime.Month;    


  1.4   取當前日    
  int   日=currentTime.Day;    


  1.5   取當前時    
  int   時=currentTime.Hour;    


  1.6   取當前分    
  int   分=currentTime.Minute;    


  1.7   取當前秒    
  int   秒=currentTime.Second; 


  1.8   取當前毫秒    
  int   毫秒=currentTime.Millisecond;    
  (變量可用中文)    
     
  1.9   取中文日期顯示——年月日時分    
  string   strY=currentTime.ToString("f");   //不顯示秒    
     
  1.10   取中文日期顯示_年月    
  string   strYM=currentTime.ToString("y");    
     
  1.11   取中文日期顯示_月日    
  string   strMD=currentTime.ToString("m");    
     
  1.12   取中文年月日    
  string   strYMD=currentTime.ToString("D");    
     
  1.13   取當前時分,格式爲:14:24    
  string   strT=currentTime.ToString("t");    
     
  1.14   取當前時間,格式爲:2003-09-23T14:46:48    
  string   strT=currentTime.ToString("s");    
     
  1.15   取當前時間,格式爲:2003-09-23   14:48:30Z    
  string   strT=currentTime.ToString("u");    
     
  1.16   取當前時間,格式爲:2003-09-23   14:48    
  string   strT=currentTime.ToString("g");    
     
  1.17   取當前時間,格式爲:Tue,   23   Sep   2003   14:52:40   GMT    
  string   strT=currentTime.ToString("r");    
     
  1.18獲得當前時間   n   天后的日期時間    
  DateTime   newDay   =   DateTime.Now.AddDays(100);  

 

//第2篇

    #region 根據年月日計算星期幾(Label2.Text=CaculateWeekDay(2004,12,9);)
    /**/
    /// <summary>
    /// 根據年月日計算星期幾(Label2.Text=CaculateWeekDay(2004,12,9);)
    /// </summary>
    /// <param name="y">年</param>
    /// <param name="m">月</param>
    /// <param name="d">日</param>
    /// <returns></returns>
    public static string CaculateWeekDay(int y, int m, int d)
    {
        if (m == 1) m = 13;
        if (m == 2) m = 14;
        int week = (d + 2 * m + 3 * (m + 1) / 5 + y + y / 4 - y / 100 + y / 400) % 7 + 1;
        string weekstr = "";
        switch (week)
        {
            case 1: weekstr = "星期一"; break;
            case 2: weekstr = "星期二"; break;
            case 3: weekstr = "星期三"; break;
            case 4: weekstr = "星期四"; break;
            case 5: weekstr = "星期五"; break;
            case 6: weekstr = "星期六"; break;
            case 7: weekstr = "星期日"; break;
        }

        return weekstr;
    }
    #endregion

    #region 根據年月日計算是一星期中的第幾天(Label2.Text=CaculateWeekDay(2004,12,9);)
    /**/
    /// <summary>
    /// 根據年月日計算是一星期中的第幾天(Label2.Text=CaculateWeekDay(2004,12,9);)
    /// </summary>
    /// <param name="y">年</param>
    /// <param name="m">月</param>
    /// <param name="d">日</param>
    /// <returns></returns>
    public static int CaculateWeekDayID(int y, int m, int d)
    {
        if (m == 1) m = 13;
        if (m == 2) m = 14;
        int week = (d + 2 * m + 3 * (m + 1) / 5 + y + y / 4 - y / 100 + y / 400) % 7 + 1;
        return week;
    }
    #endregion

    #region 根據星期序號轉換爲星期幾
    /**/
    /// <summary>
    /// 根據年月日計算是一星期中的第幾天(Label2.Text=CaculateWeekDay(2004,12,9);)
    /// </summary>
    /// <param name="y">年</param>
    /// <returns></returns>
    public static string WeekDayID2WeekDayString(string strID)
    {
        string strWeekDay = "";
        string weekstr = "";
        for (int y = 1; y < 8; y++)
        {
            if (strID.IndexOf(y.ToString()) > -1)
            {
                weekstr = "";
                switch (y)
                {
                    case 1: weekstr = "星期一"; break;
                    case 2: weekstr = "星期二"; break;
                    case 3: weekstr = "星期三"; break;
                    case 4: weekstr = "星期四"; break;
                    case 5: weekstr = "星期五"; break;
                    case 6: weekstr = "星期六"; break;
                    case 7: weekstr = "星期日"; break;
                }
                if (strWeekDay != "")
                {
                    strWeekDay += ",";
                }
                strWeekDay += weekstr;
            }
        }
        return strWeekDay;
    }
    #endregion

 

 

//第3篇

c#中取星期方法一:
string weekstr = DateTime.Now.DayOfWeek.ToString();
        switch (weekstr)
        {
            case "Monday": weekstr = "星期一"; break;
            case "Tuesday": weekstr = "星期二"; break;
            case "Wednesday": weekstr = "星期三"; break;
            case "Thursday": weekstr = "星期四"; break;
            case "Friday": weekstr = "星期五"; break;
            case "Saturday": weekstr = "星期六"; break;
            case "Sunday": weekstr = "星期日"; break;
        }
方法二:
基姆拉爾森計算公式
W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7

在公式中d表示日期中的日數,m表示月份數,y表示年數。

注意:在公式中有個與其他公式不同的地方:

把一月和二月看成是上一年的十三月和十四月,例:如果是2004-1-10則換算成:2003-13-10來代入公式計算。

代碼如下:
//y-年,m-月,d-日期
string CaculateWeekDay(int y,int m, int d)
{
if(m==1) m=13;
if(m==2) m=14;
        int week=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;
string weekstr="";
   switch(week)
   {
    case 1: weekstr="星期一"; break;
    case 2: weekstr="星期二"; break;
    case 3: weekstr="星期三"; break;
    case 4: weekstr="星期四"; break;
    case 5: weekstr="星期五"; break;
    case 6: weekstr="星期六"; break;
    case 7: weekstr="星期日"; break;
   }

          return weekstr;
}

調用方法:
Label2.Text=CaculateWeekDay(2004,12,9);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章