- アンコちゃんで今選択されている放送の情報は
変数は「LibAnko.broadcast」型
- タイムシフトにつないでいるかは
変数は「int」型で「1」の時はタイムシフト
- 放送終了時間は
変数は「int」で「ユニックス時間」
UNIX時間(ユニックスじかん)とは 協定世界時(UTC)での1970年1月1日真夜中(午前0時0分0秒)からの経過秒数 ※ウィキペディアより(2012/12/31抜粋) |
現在時間をユニックス時間で取得するには
下記のメソッドをDateTime.Now引数で呼べば戻り値で帰ってくる
public readonly static DateTime UnixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); public static long ToUnixTime(DateTime dateTime) { if (dateTime.Kind != DateTimeKind.Utc) dateTime = dateTime.ToUniversalTime(); return (long)dateTime.Subtract(UnixEpoch).TotalSeconds; }
参照 smdn:総武ソフトウェア推進所より(2012/12/31抜粋) http://smdn.jp/programming/netfx/tips/convert_unixtime_into_datetime/ |
DateTime.Nowは
コンピュータ上の現在の日時を現地時刻で表したDateTimeオブジェクトを取得する
参照 Microsoft Developer Network(msdn)より(2012/12/31抜粋) http://msdn.microsoft.com/ja-jp/library/system.datetime.now%28v=vs.80%29.aspx |
以下のIsOnAirメソッドを呼べばbool値で判定できる
bool IsOnAir() { LibAnko.broadcast broadcast = _host.CurrentCast; if (broadcast != null) { if (broadcast.archive != 1) { if (ToUnixTime(DateTime.Now) < broadcast.end_time) { return true; } else { return false; } } else { return false; } } else { return false; } } public readonly static DateTime UnixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); public static long ToUnixTime(DateTime dateTime) { if (dateTime.Kind != DateTimeKind.Utc) { dateTime = dateTime.ToUniversalTime(); } return (long)dateTime.Subtract(UnixEpoch).TotalSeconds; }
bool IsOnAir() { bool isonair = false; long NowUnixTime = (long)DateTime.Now.ToUniversalTime() .Subtract(new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)) .TotalSeconds; LibAnko.broadcast broadcast = _host.CurrentCast; if (broadcast != null) if (broadcast.archive != 1) if (NowUnixTime < broadcast.end_time) isonair = true; return isonair; }