C# 显示比较时间戳与当前月份
C# Display compare timestamp to current month
所以我正在为我正在开发的程序开发一个投票系统,我对 C# 还很陌生,所以我需要一些帮助来完成我需要的下一部分。我已经从 json 中获取我需要的信息并且它正在显示,但现在我需要检查 unix 时间戳并比较它以查看它是否在 24 小时内所以它只显示结果如果它在时间戳的 24 小时内列出。
timestamp 像这样输出时间戳。
1439125612
我不确定如何使用这个时间戳来检查一个人是否在 24 小时内投票。我只希望他们能够每 24 小时投票一次,无论如何都不能作弊。
void Form1_Load(object sender, EventArgs e)
{
var key = textBox6.Text;
WebClient client = new WebClient();
client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(webClient_DownloadStringCompleted);
client.DownloadStringAsync(new Uri("http://exampleurl.com/api/?object=servers&element=votes&key=" + key + "&format=json"));
}
public class Vote
{
public string date { get; set; }
public int timestamp { get; set; }
public string nickname { get; set; }
public string steamid { get; set; }
public string claimed { get; set; }
}
public class RootObject
{
public string name { get; set; }
public string address { get; set; }
public string port { get; set; }
public string month { get; set; }
public List<Vote> votes { get; set; }
}
void webClient_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
var rootObject = JsonConvert.DeserializeObject<RootObject>(e.Result);
foreach (var vote in rootObject.votes)
{
string vdate = vote.date;
int vtimestamp = vote.timestamp;
string timestamp = vtimestamp.ToString();
string vnickname = vote.nickname;
string vsteamid = vote.steamid;
string vclimed = vote.claimed;
textBox5.Text += "Date: " + vdate + "\r\n"
+ "Timestamp: " + timestamp + "\r\n"
+ "Nickname: " + vnickname + "\r\n"
+ "StreamID: " + vsteamid + "\r\n"
+ "Claimed: " + vclimed + "\r\n\r\n";
}
}
编辑:我编辑了以上内容以提供我需要的正确信息。我很累,发帖时没有想清楚。如果已经回答的人可以修改他们的答案,我会检查一下。谢谢
好吧,现在你应该只解析 Unix 时间。您可以使用此代码来执行此操作:
public static DateTime ParseUnixDateTime(double unixTime)
{
var dt= new DateTime(1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc);
dt= dt.AddSeconds(unixTimeStamp).ToLocalTime();
return dt;
}
所以我正在为我正在开发的程序开发一个投票系统,我对 C# 还很陌生,所以我需要一些帮助来完成我需要的下一部分。我已经从 json 中获取我需要的信息并且它正在显示,但现在我需要检查 unix 时间戳并比较它以查看它是否在 24 小时内所以它只显示结果如果它在时间戳的 24 小时内列出。
timestamp 像这样输出时间戳。
1439125612
我不确定如何使用这个时间戳来检查一个人是否在 24 小时内投票。我只希望他们能够每 24 小时投票一次,无论如何都不能作弊。
void Form1_Load(object sender, EventArgs e)
{
var key = textBox6.Text;
WebClient client = new WebClient();
client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(webClient_DownloadStringCompleted);
client.DownloadStringAsync(new Uri("http://exampleurl.com/api/?object=servers&element=votes&key=" + key + "&format=json"));
}
public class Vote
{
public string date { get; set; }
public int timestamp { get; set; }
public string nickname { get; set; }
public string steamid { get; set; }
public string claimed { get; set; }
}
public class RootObject
{
public string name { get; set; }
public string address { get; set; }
public string port { get; set; }
public string month { get; set; }
public List<Vote> votes { get; set; }
}
void webClient_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
var rootObject = JsonConvert.DeserializeObject<RootObject>(e.Result);
foreach (var vote in rootObject.votes)
{
string vdate = vote.date;
int vtimestamp = vote.timestamp;
string timestamp = vtimestamp.ToString();
string vnickname = vote.nickname;
string vsteamid = vote.steamid;
string vclimed = vote.claimed;
textBox5.Text += "Date: " + vdate + "\r\n"
+ "Timestamp: " + timestamp + "\r\n"
+ "Nickname: " + vnickname + "\r\n"
+ "StreamID: " + vsteamid + "\r\n"
+ "Claimed: " + vclimed + "\r\n\r\n";
}
}
编辑:我编辑了以上内容以提供我需要的正确信息。我很累,发帖时没有想清楚。如果已经回答的人可以修改他们的答案,我会检查一下。谢谢
好吧,现在你应该只解析 Unix 时间。您可以使用此代码来执行此操作:
public static DateTime ParseUnixDateTime(double unixTime)
{
var dt= new DateTime(1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc);
dt= dt.AddSeconds(unixTimeStamp).ToLocalTime();
return dt;
}