2 つの時刻の間の分数を計算するメソッドがあります。このようなもの:
DateTime UserLocalTime = DateTime.UtcNow.ConvertToUserTime(UserTimezoneID);
double TheOffset = (UserLocalTime - DateTime.UtcNow).TotalMinutes;
return TheOffset.ToString();
問題は、分や秒などを計算しているため、119.83723 のような値が返されることです。
どうすればこれを修正できますか? 残念ながら 120.11233 も返されることがあるので、丸めもまったく役に立たないかもしれません。
ご提案いただきありがとうございます。
Update1: (int)(Math.Round((UserLocalTime - DateTime.UtcNow).TotalMinutes)); 119 を返します。
更新 2: これを試してみました。動作しているように見えますが、オフセットが変な場合は失敗します (5:30 の場合があり、答えは 330 分である必要があります)。
int TheOffset = (int)(Math.Round((UserLocalTime - DateTime.UtcNow).TotalHours));
TheOffset = TheOffset * 60;