Unity3D :判断当天为星期几

来源:互联网 发布:没有网站外链好优化么 编辑:程序博客网 时间:2024/06/06 09:27

前言:
获取当前日期,直接 用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

原创粉丝点击