// 日付情報から残り時間を所定のフォーマットで返却 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 }
// 日付情報から残り時間を所定のフォーマットで返却 無制限判定なし public static DateTime IsDateTime(long timing) { return(TimeUtil.ConvertTotalSecondsToServerTime((ulong)timing)); }