简单的七日签到系统

一个简单的七日签到系统
代码:在这里插入图片描述

// An highlighted block
	using System.Collections.Generic;
	using System.Collections;
/// <summary>
/// 7日签到系统
/// </summary>
public class SignView : MonoBehaviour
{
    public const string SignNumPrefs = "SignNum";
    public const string SignDataPrefs = "SignData";
    int signNum;//签到次数
    DateTime today;//今日日期
    DateTime signData;//上次签到日期
    IEnumerator Start()
    {
        WWW www = new WWW("http://www.hko.gov.hk/cgi-bin/gts/time5a.pr?a=1");
        while (!www.isDone)
        {
            //防止加载失败
            yield return www;
        }
        if (www.text == "" || www.text.Trim() == "")//如果获取网络时间失败,改为获取系统时间
        {
            today = DateTime.Now;
        }
        else//成功获取网络时间
        {
            string timeStr = www.text.Substring(2);
            System.DateTime time = System.DateTime.MinValue;
            System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new 		System.DateTime(1970, 1, 1));
            time = startTime.AddMilliseconds(Convert.ToDouble(timeStr));
            timeStr = time.ToString();
            today = DateTime.Parse(timeStr);
        }
        signNum = PlayerPrefs.GetInt(SignNumPrefs, 0);
        signData = DateTime.Parse(PlayerPrefs.GetString(SignDataPrefs, 		DateTime.MinValue.ToString()));
        RefreshView();//刷新签到面板
    }
   //签到领取奖励
    public void OnSignClick(int index)
    {
        if (IsOneDay()&&signNum==index)
        {
            signNum++;
            signData = today;
            Debug.Log("执行了");
            PlayerPrefs.SetString(SignDataPrefs, today.ToString());
            PlayerPrefs.SetInt(SignNumPrefs, signNum);
            RefreshView();
            UserGift(); //给用户奖励
            if (signNum >= 7)//重新计算签到
            {
                PlayerPrefs.DeleteKey(SignNumPrefs);
            }
        }
        else
        {
            //签到日期未到
        }
    }
	//视图刷新方法
    void RefreshView()
    {

    }
//判断是否可以签到
    private bool IsOneDay()
    {
        if (signData.Year == today.Year && signData.Month == today.Month && signData.Day == today.Day)
        {
            return false;
        }
        if (DateTime.Compare(signData, today) < 0)
        {
            return true;
        }
        return false;
    }
//签到奖励
    void UserGift()
    {
       
    }

}

第一次写博客,不对之处请多多指教,欢迎讨论

参考链接: https://blog.csdn.net/yupu56/article/details/82873362.

猜你喜欢

转载自blog.csdn.net/weixin_44431724/article/details/105286412
今日推荐