Exemplo n.º 1
0
    // 日付情報から残り時間を所定のフォーマットで返却
    private static string defaultDateText(long timing, string[] formats)
    {
        Labels label;
        string result;

        // アイテム受領期間までの残り時間が無期限の場合
        if (timing == 1)
        {
            // 無制限
            result = formats[(int)Labels.Endless];
        }
        else
        {
            // 日付情報から残り時間を所定のフォーマットで返却
            //DateTime date = TimeUtil.GetShowEventEndTime((uint)timing);
            DateTime date = TimeUtil.ConvertTotalSecondsToServerTime((ulong)timing);

            // 現在時刻との差分
            TimeSpan ts = date - TimeManager.Instance.m_TimeNow;

            // 期間内
            if (TimeSpan.Zero < ts)
            {
                if (1 < ts.Days)
                {
                    // 期間まで、残り1日(24時間)以上
                    label = Labels.Days;
                }
                else if (1 < ts.Hours)
                {
                    // 期間まで、残り24時間未満
                    label = Labels.Hours;
                }
                else
                {
                    // 期間まで、残り1時間未満
                    label = Labels.Minutes;
                }
            }
            else
            {
                // 期限切れ
                label = Labels.Closed;
            }
            result = String.Format(formats[(int)label], date.Year, date.Month, date.Day, ts.Days, ts.Hours, ts.Minutes);
        }
        return(result);
    }
    //----------------------------------------------------------------------------
    //	@brief		ローカル通知設定
    //	@param[in]	string		(title)		通知文言:タイトル
    //	@param[in]	string		(text)		通知文言:本文
    //	@param[in]	int			(delay)		現在時刻から表示するまでの時間(秒)
    //----------------------------------------------------------------------------
    public static void SendNotification(string title, string text, int delay)
    {
        if (Patcher.Instance.GetLocalNotificationRegisterDisable())
        {
            return;
        }

        if (TimeManager.Instance == null)
        {
            return;
        }

#if LOCAL_NOTIFICATION_EDITOR
#if DEBUG_LOG
        // Editor
        Debug.Log("SetNotification: " + title + " / text: " + text + " / delay: " + delay);
#endif
#elif LOCAL_NOTIFICATION_ANDROID
        string package  = Application.identifier;
        string activity = "com.onevcat.uniwebview.AndroidPlugin";
        // Android
        ELANManager.SendNotification(title, text, package, activity, delay);
#elif LOCAL_NOTIFICATION_IOS
        // iOS(現在時刻とりなおして、ディレイ時間を足してるので若干登録時間に誤差がでるかも。気になるレベルではないはず)
        LocalNotification notification = new LocalNotification();
        if (notification != null)
        {
            // サーバー時間を加味して通知時間を変更している
            ulong    totalSeconds = TimeUtil.ConvertLocalTimeToServerTime(TimeManager.Instance.m_TimeNow.AddSeconds(delay));
            DateTime td           = TimeUtil.ConvertTotalSecondsToServerTime(totalSeconds);

            notification.applicationIconBadgeNumber = -1;
            notification.fireDate  = td;
            notification.alertBody = text;
            NotificationServices.ScheduleLocalNotification(notification);
        }
#endif
    }
Exemplo n.º 3
0
 // 日付情報から残り時間を所定のフォーマットで返却 無制限判定なし
 public static DateTime IsDateTime(long timing)
 {
     return(TimeUtil.ConvertTotalSecondsToServerTime((ulong)timing));
 }