コード例 #1
0
    // 초기화시간 계산
    string TransformTime(uint type, string RefreshTime)
    {
        string msg = "";

        // 시간
        DateTime Now = DateTime.Now;    //현재시간
        //DateTime ResetTime;    //초기화시간
        //DateTime NormalShopResetTime = new DateTime();    //일반상점 초기화시간 (2시간)

        int year  = int.Parse(RefreshTime.Substring(0, 4));
        int month = int.Parse(RefreshTime.Substring(4, 2));
        int day   = int.Parse(RefreshTime.Substring(6, 2));
        int hour  = int.Parse(RefreshTime.Substring(8, 2));

        DateTime ResetTime = new DateTime(year, month, day, 0, 0, 0);

        if (type == 1)
        {
            // 일반상점
            if (hour >= 22) //10시이후에는 hour+2 했을경우 24시를 넘어가기때문에 그냥 하루를 더해줌
            // ResetTime = new DateTime(year, month, day + 1, 0, 0, 0, 0);   //2시간
            {
                ResetTime = ResetTime.AddDays(1);
            }
            else
            {
                //ResetTime = new DateTime(year, month, day, hour + 2, 0, 0);   //2시간
                ResetTime = ResetTime.AddHours(hour + 2);
            }
        }
        else
        {
            // 나머지상점
            if (day + 1 > DateTime.DaysInMonth(year, month))    // day+1 이 그달의 일수를 넘어간다면? ex) 2월 29일인데 +1 해서 30이나왓다
            {
                ResetTime = ResetTime.AddMonths(1);
                //ResetTime = new DateTime(year, month + 1, 0, 0, 0, 0);   //하루
            }
            else
            {
                //ResetTime = new DateTime(year, month, day + 1, 0, 0, 0);   //하루
                ResetTime = ResetTime.AddDays(1);
            }
        }

        TimeSpan ts = ResetTime - Now;

        msg = string.Format("{0} {1:00} : {2:00} : {3:00}", _LowDataMgr.instance.GetStringCommon(463), ts.Hours, ts.Minutes, ts.Seconds);
        if (ts.Seconds < 0)
        {
            msg = string.Format("{0} {1:00} : {2:00} : {3:00}", _LowDataMgr.instance.GetStringCommon(463), 0, 0, 0);
        }

        return(msg);
    }