예제 #1
0
        protected override void WriteKeys(Newtonsoft.Json.JsonWriter writer)
        {
            if (DateStyle != FieldDateTimeStyle.Unspecified)
            {
                writer.WritePropertyName("dateStyle");
                writer.WriteValue(DateStyle.ToString());
            }

            if (TimeStyle != FieldDateTimeStyle.Unspecified)
            {
                writer.WritePropertyName("timeStyle");
                writer.WriteValue(TimeStyle.ToString());
            }

            if (IsRelative.HasValue)
            {
                writer.WritePropertyName("isRelative");
                writer.WriteValue(IsRelative.Value);
            }

            if (IgnoresTimeZone.HasValue)
            {
                writer.WritePropertyName("ignoresTimeZone");
                writer.WriteValue(IgnoresTimeZone.Value);
            }
        }
예제 #2
0
        protected string GetPattern(TagModel model, DateTimeFormatInfo format)
        {
            DateType  type      = GetAs <DateType>(Type, model, DateType.Both).Value;
            DateStyle dateStyle = GetAs <DateStyle>(DateStyle, model, FormatTags.DateStyle.Default).Value;
            TimeStyle timeStyle = GetAs <TimeStyle>(TimeStyle, model, FormatTags.TimeStyle.Default).Value;

            return(GetAsString(Pattern, model) ?? ConstructPattern(type, dateStyle, timeStyle, format));
        }
 public static StandardFieldsBuilder Add(
     this StandardFieldsBuilder builder,
     string key,
     string label,
     DateTimeOffset value,
     DateStyle dateStyle,
     DateStyle timeStyle)
 {
     return(builder.Add(key).Label(label).Value(value.ToIsoString()).DateStyle(dateStyle).TimeStyle(timeStyle));
 }
예제 #4
0
        private string ConstructPattern(DateType type, DateStyle dateStyle, TimeStyle timeStyle,
                                        DateTimeFormatInfo format)
        {
            var sb = new StringBuilder();

            if (type != DateType.Time)
            {
                sb.Append(dateStyle == FormatTags.DateStyle.Long ? format.LongDatePattern : format.ShortDatePattern);
            }
            if (type == DateType.Both)
            {
                sb.Append(" ");
            }
            if (type != DateType.Date)
            {
                sb.Append(timeStyle == FormatTags.TimeStyle.Long ? format.LongTimePattern : format.ShortTimePattern);
            }
            return(sb.ToString());
        }
예제 #5
0
        /// <summary>
        /// 将传入的指定格式的整型日期转为指定格式的整型日期
        /// </summary>
        /// <param name="dateNum">8位整型日期</param>
        /// <param name="inDateStyle">输入的整型日期格式</param>
        /// <param name="outDateStyle">希望输出的日期格式</param>
        /// <returns></returns>
        public static int ToIntDate(this int dateNum, DateStyle inDateStyle, DateStyle outDateStyle)
        {
            DateTime dtm = Function.ToDateTime(dateNum, 0, inDateStyle);

            int intDateValue = 0;

            switch (outDateStyle)
            {
            case DateStyle.yyyyMMdd:
                intDateValue = dtm.Year * 10000 + dtm.Month * 100 + dtm.Day;
                break;

            case DateStyle.YYYYMM00:
                intDateValue = dtm.Year * 10000 + dtm.Month * 100;
                break;

            case DateStyle.YYYY0000:
                intDateValue = dtm.Year * 10000;
                break;
            }

            return(intDateValue);
        }
예제 #6
0
 public IntlDateTime(DateStyle date, TimeStyle time = TimeStyle.Undefined) : base(IntlFormat.DateTime)
 {
     Date = date;
     Time = time;
 }
 /// <summary>
 /// Style of time to display.
 /// </summary>
 public static PassBuilder.StandardFieldBuilder TimeStyle(this PassBuilder.StandardFieldBuilder builder, DateStyle value)
 {
     builder.SetFieldValue(PassBuilder.GetCaller(), value.ToPassKitString());
     return(builder);
 }
예제 #8
0
 // <summary>
 /// 按指定日期样式将输入的整型日期转为日期型日期
 /// </summary>
 /// <param name="dateNum">8位整型日期</param>
 /// <param name="inDateStyle">输入的整型日期格式</param>
 /// <returns></returns>
 public static DateTime ToDateTime(this int dateNum, DateStyle inDateStyle)
 {
     return(Function.ToDateTime(dateNum, 0, inDateStyle));
 }
예제 #9
0
 /// <summary>
 /// 将输入的日期按指定格式转换为适合页面显示的日期字符串
 /// </summary>
 /// <param name="dateNum">8位整型日期</param>
 /// <param name="inDateStyle">输入的日期格式</param>
 /// <param name="outDateStyle">输出的日期样式</param>
 /// <param name="replaceNull">如果传入的参数为空是返回的值</param>
 /// <returns>适合页面显示的日期字符串</returns>
 public static string OutDateTime(object dateNum, DateStyle inDateStyle, OutDateStyle outDateStyle, string replaceNull)
 {
     return(OutDateTime(dateNum, inDateStyle, outDateStyle, null, null, replaceNull, "", ""));
 }
 internal DateValidator(DateStyle dateStyl)
 {
     _dateStyl = dateStyl;
 }
예제 #11
0
 public DateTimeStamp(DateFormat format, DateCorner corner, DateStyle style)
 {
     Format = format;
     Corner = corner;
     Style  = style;
 }
예제 #12
0
    /// <summary>
    /// 约会
    /// </summary>
    /// <param name="styleIndex">约会类型(从0开始计数)</param>
    /// <returns>0:代表金钱不足 -1:正在约会,不能再次执行  </returns>
    /// (更新玩家数据、统计数据、设置计时器)
    ///
    public float[] GoToDate(int styleIndex)
    {
        // int index = styleIndex - 1;
        DateStyle dateStyle = designData.dateStyleArray[styleIndex];// dateSyele为约会列表单曲的子项数据。(包括花费金币/冷却时间/增加好感)

        //如果是第一次开始约会

        if (IsDating()) // 如果isWorking false: 代表都没有在约会,true:当前有在约会
        {
            //当前有在约会,请等待冷却时间结束后再进行其他约会
            //return new float[] {-1 };
            return(null);
        }
        else //没有在约会
        {
            // 当前项开始约会
            if (getCoinCount() - dateStyle.consumeCoins >= 0)                                  // getCoinCount()当前金币数 - 将要花费的金币数 足够花费
            {
                subCoins(dateStyle.consumeCoins);                                              // 减去花费的金币
                addFavorPoint(dateStyle.addFavorPoint);                                        // 增加好感------应该判断变化后是否会升级,如果升级应该获得升级通知

                playerData.dateCount[styleIndex] += 1;                                         // 当前子项的约会次数加一

                playerData.dateTimers[styleIndex].beginTime  = System.DateTime.Now.ToString(); // 当前项的计时器记录当前系统时间
                playerData.dateTimers[styleIndex].remainTime = dateStyle.coldDownTime;         // 当前项的冷却时间


                // SetIsDating(true);//当前项在工作

                return(new float[] { 1, getCoinCount(), getFavorPoint(), playerData.dateCount[styleIndex], dateStyle.coldDownTime, getMaxFavorPoint(), dateStyle.consumeCoins, dateStyle.addFavorPoint }); //状态码 / 返回变化后的金币,变化后的好感度,当前的约会次数, 当前项的冷却时间, 当前等级最大的好感度 / 金币差值 / 好感度差值
            }
            else
            {
                return(new float[] { 0 });//如果第一位为0,表示金币不足
            }
        }

        #region 升级操作

        /*
         * public float[] LevelUp()
         * {
         * float cur = getFavorPoint();
         * if (getFavorPoint() >= getMaxFavorPoint())
         * {
         *   playerData.favorPoint -= getMaxFavorPoint();//当前变化后的好感度 - 当前等级最大的好感度
         *   playerData.level += 1; //等级加1
         *                          // Debug.Log("升级成功&获得钻石奖励-10!");
         *                          //钻石加10
         *   playerData.diamonds += 10f;
         *   return new float[]{ 1,  playerData.favorPoint, playerData.diamonds, playerData.level} ;//返回变化后的好感度和钻石
         *
         *
         * }
         *
         * return new float[] {0 };
         * }
         */

        #endregion
    }
예제 #13
0
 /// <summary>
 /// 将输入的日期、时间按指定格式转换为适合页面显示的日期、时间字符串
 /// </summary>
 /// <param name="dateNum">8位整型日期</param>
 /// <param name="inDateStyle">输入的日期格式</param>
 /// <param name="outDateStyle">输出的日期样式</param>
 /// <param name="timeNum">6位整型时间</param>
 /// <param name="outTimeStyle">输出的时间样式</param>
 /// <returns>适合页面显示的日期时间字符串</returns>
 public static string OutDateTime(object dateNum, DateStyle inDateStyle, OutDateStyle outDateStyle, object timeNum, OutTimeStyle outTimeStyle)
 {
     return(OutDateTime(dateNum, inDateStyle, outDateStyle, timeNum, outTimeStyle, "", "", ""));
 }
예제 #14
0
 /// <summary>
 /// 将输入的日期按指定格式转换为适合页面显示的日期字符串
 /// </summary>
 /// <param name="dateNum">8位整型日期</param>
 /// <param name="inDateStyle">输入的日期格式</param>
 /// <param name="outDateStyle">输出的日期样式</param>
 /// <param name="replaceNull">如果传入的参数为空是返回的值</param>
 /// <param name="prefix">前缀</param>
 /// <param name="postfix">后缀</param>
 /// <returns>适合页面显示的日期字符串</returns>
 public static string OutDateTime(object dateNum, DateStyle inDateStyle, OutDateStyle outDateStyle, string replaceNull, string prefix, string postfix)
 {
     return(OutDateTime(dateNum, inDateStyle, outDateStyle, null, null, replaceNull, prefix, postfix));
 }
예제 #15
0
 /// <summary>
 /// 指定传入的整型日期格式并转为 yyyyMMdd 格式的日期
 /// </summary>
 /// <param name="dateNum">8位整型日期</param>
 /// <param name="inDateStyle">输入的整型日期格式</param>
 /// <returns></returns>
 public static int ToIntDate(this int dateNum, DateStyle inDateStyle)
 {
     return(ToIntDate(dateNum, inDateStyle, DateStyle.yyyyMMdd));
 }
예제 #16
0
        /// <summary>
        /// 按指定日期样式将输入的整型日期、时间转为日期型日期时间
        /// </summary>
        /// <param name="dateNum">8位整型日期</param>
        /// <param name="timeNum">6位整型时间</param>
        /// <param name="inDateStyle">输入的整型日期格式</param>
        /// <returns>日期型日期</returns>
        public static DateTime ToDateTime(int dateNum, int timeNum, DateStyle inDateStyle)
        {
            DateTime dtm = new DateTime();

            if (dateNum > 10000 && dateNum <= 99991231)
            {
                //自动判断日期类型
                if (inDateStyle == DateStyle.Automatism)
                {
                    if ((dateNum % 100) != 0)
                    {
                        inDateStyle = DateStyle.yyyyMMdd;
                    }
                    else if ((dateNum % 10000) != 0)
                    {
                        inDateStyle = DateStyle.YYYYMM00;
                    }
                    else
                    {
                        inDateStyle = DateStyle.YYYY0000;
                    }
                }

                switch (inDateStyle)
                {
                case DateStyle.yyyyMMdd:
                    dtm = dtm.AddYears((dateNum / 10000) - 1);
                    dtm = dtm.AddMonths(((dateNum / 100) % 100) - 1);
                    dtm = dtm.AddDays((dateNum % 100) - 1);
                    break;

                case DateStyle.YYYYMM00:
                    dtm = dtm.AddYears((dateNum / 10000) - 1);
                    dtm = dtm.AddMonths(((dateNum / 100) % 100) - 1);

                    if (dtm.Day != 0)
                    {
                        dtm = dtm.AddDays(1 - dtm.Day);
                    }
                    break;

                case DateStyle.YYYY0000:
                    dtm = dtm.AddYears((dateNum / 10000) - 1);
                    dtm = dtm.AddMonths(((dateNum / 100) % 100) - 1);
                    dtm = dtm.AddDays((dateNum % 100) - 1);

                    if (dtm.Day != 0)
                    {
                        dtm = dtm.AddDays(1 - dtm.Day);
                    }

                    if (dtm.Month != 0)
                    {
                        dtm = dtm.AddMonths(1 - dtm.Month);
                    }
                    break;
                }
            }

            if (timeNum > 0)
            {
                dtm = dtm.AddHours(timeNum / 10000);
                dtm = dtm.AddMinutes((timeNum / 100) % 100);
                dtm = dtm.AddSeconds(timeNum % 100);
            }
            return(dtm);
        }
예제 #17
0
 /// <summary>
 /// 将传入的日期转为指定格式的整型日期
 /// </summary>
 /// <param name="dateTime">DateTime 型日期时间</param>
 /// <param name="outDateStyle">希望输出的日期格式</param>
 /// <returns></returns>
 public static int ToIntDate(this DateTime dateTime, DateStyle outDateStyle)
 {
     return((dateTime.Year * 10000 + dateTime.Month * 100 + dateTime.Day).ToIntDate(DateStyle.yyyyMMdd, outDateStyle));
 }