Unity3D :判斷當天爲星期幾

前言:
獲取當前日期,直接 用DateTime.Now 就可以得到,但當天的星期數,獲取的卻是 英文輸出(數字),而你想要的到當天爲星期幾,則另外需要作判斷。

腳本如下:

// 根據當前系統時間判定:
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;
        }

簡寫爲:
string weekstr = DateTime.Now.DayOfWeek.ToString(“d”);
(注: C#的腳本枚舉是 0~6, 0表示星期天,後面以此類推)

如果是從服務器上獲取時間字符串,則另需要轉換爲日期類型輸出

string time = System.DateTime.Now.ToString("yyyyMMddHHmmss");
// 把字符串類型日期轉換爲日期類型
System.DateTime t = System.DateTime.ParseExact(time, "yyyyMMddHHmmss", System.Globalization.CultureInfo.CurrentCulture);

如果從服務器上獲取的是時間戳:

string tt = "xxx"; // 從服務器獲取的時間戳
System.DateTime times = StampToDataTime(tt);
int currentDay = int.Parse(times.DayOfWeek.ToString("d") );
Debug.Log("\n === change time:" + times + ",week:" + times.DayOfWeek.ToString("d"));


/// 時間戳轉時間格式
/// <param name="timeStamp">時間戳</param> --- 以服務器時間戳的精確爲準
public DateTime StampToDataTime(string timeStamp){
 DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970,1,1));
  // --- 以服務器時間戳的精確爲準,添加0,默認7個0 (毫秒級,則添加4個0) 
 long mTime = long.Parse(timeStamp + "0000000");  
 TimeSpan toNow = new TimeSpan(mTime ); 

 Debug.Log("\n===== toNow Time: " + toNow + ", current: " + startTime.Add(toNow));
 return startTime.Add(toNow);
 }

備註:

// 以特定格式 顯示 當前時間
Debug.Log("\n=== currently time: " + System.DateTime.Now.ToString("yyyyMMddHHmmss"));
// 當前的星期數
Debug.Log("\n=== currently time: " + System.DateTime.Now.DayOfWeek.ToString("d")); // 星期小寫 (0~6)

參考資料:http://www.cnblogs.com/junjie94wan/archive/2012/12/10/2811134.html

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