C#显示比较时间戳与当前月份

时间:2015-08-10 09:34:22

标签: c# json c#-4.0 timestamp visual-studio-2015

所以我正在为我正在开发的程序开发一个投票系统,而且我对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";
   }
}

编辑:我编辑了上述内容以提供我需要的正确信息。当我发布这个时,我很累,并没有想清楚。如果有人回答已经可以修改他们的答案,我会检查出来。感谢。

1 个答案:

答案 0 :(得分:1)

好吧,现在你应该解析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;
    }