public string HowLongAgo( SmartDate challengeDate ) { TimeSpan ts = DateTime.Now - challengeDate.Date; if ( ts.TotalDays < 1 ) { if ( ts.TotalMinutes < 60 ) { if ( ts.TotalMinutes < 2 ) { return "Just now"; } else { return Math.Floor( ts.TotalMinutes ).ToString() + " minutes ago today"; } } else { return ts.Hours == 1 ? "1 hour ago today" : ts.Hours.ToString() + " hours ago today"; } } else if ( ts.TotalDays < 2 ) { return "Yesterday"; } else { return Math.Floor( ts.TotalDays ).ToString() + " days ago"; } }
public void Relative_Nearest_Day() { var day = 10; var smartDate = new SmartDate(day.ToString()); if (DateTime.Now.Day - day < -16) Assert.AreEqual(new DateTime(DateTime.Now.Year, DateTime.Now.Month, day).AddMonths(-1).ToString("d"), smartDate); else if (DateTime.Now.Day - day > 16) Assert.AreEqual(new DateTime(DateTime.Now.Year, DateTime.Now.Month, day).AddMonths(1).ToString("d"), smartDate); else Assert.AreEqual(new DateTime(DateTime.Now.Year, DateTime.Now.Month, day).ToString("d"), smartDate); day = 20; smartDate = new SmartDate(day.ToString()); if (DateTime.Now.Day - day < -16) Assert.AreEqual(new DateTime(DateTime.Now.Year, DateTime.Now.Month, day).AddMonths(-1).ToString("d"), smartDate); else if (DateTime.Now.Day - day > 16) Assert.AreEqual(new DateTime(DateTime.Now.Year, DateTime.Now.Month, day).AddMonths(1).ToString("d"), smartDate); else Assert.AreEqual(new DateTime(DateTime.Now.Year, DateTime.Now.Month, day).ToString("d"), smartDate); day = 28; smartDate = new SmartDate(day.ToString()); if (DateTime.Now.Day - day < -16) Assert.AreEqual(new DateTime(DateTime.Now.Year, DateTime.Now.Month, day).AddMonths(-1).ToString("d"), smartDate); else if (DateTime.Now.Day - day > 16) Assert.AreEqual(new DateTime(DateTime.Now.Year, DateTime.Now.Month, day).AddMonths(1).ToString("d"), smartDate); else Assert.AreEqual(new DateTime(DateTime.Now.Year, DateTime.Now.Month, day).ToString("d"), smartDate); }
protected string GetPostDate( SmartDate date ) { string postDate = string.Empty; if ( date.Date.ToShortDateString() == DateTime.Today.ToShortDateString() ) postDate = "<strong>Today</strong>, " + date.Date.ToShortTimeString(); else if ( date.Date.ToShortDateString() == DateTime.Today.AddDays( -1 ).ToShortDateString() ) postDate = "<strong>Yesterday</strong>, " + date.Date.ToShortTimeString(); else postDate = date.Date.ToString( "f" ); return postDate; }
protected string GetMessageDate( SmartDate date ) { string messageDate = string.Empty; if ( date.Date.ToShortDateString() == DateTime.Today.ToShortDateString() ) messageDate = "Today, " + date.Date.ToShortTimeString(); else if ( date.Date.ToShortDateString() == DateTime.Today.AddDays( -1 ).ToShortDateString() ) messageDate = "Yesterday, " + date.Date.ToShortTimeString(); else messageDate = date.Date.ToString( "MMM dd, hh:mm tt" ); return messageDate; }
/// <summary> /// Inserts a new Order object in the database. /// </summary> /// <param name="orderID">The Order ID.</param> /// <param name="userName">The User Name.</param> /// <param name="orderNumber">The Order Number.</param> /// <param name="orderDate">The Order Date.</param> /// <param name="cardType">The Card Type.</param> /// <param name="cardHolder">The Card Holder.</param> /// <param name="creditCard">The Credit Card.</param> /// <param name="expDate">The Exp Date.</param> public void Insert(Guid orderID, string userName, string orderNumber, SmartDate orderDate, string cardType, string cardHolder, string creditCard, string expDate) { using (var ctx = ConnectionManager<SqlConnection>.GetManager("ActionExtenderSample")) { using (var cmd = new SqlCommand("AddOrder", ctx.Connection)) { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@OrderID", orderID).DbType = DbType.Guid; cmd.Parameters.AddWithValue("@UserName", userName).DbType = DbType.String; cmd.Parameters.AddWithValue("@OrderNumber", orderNumber).DbType = DbType.String; cmd.Parameters.AddWithValue("@OrderDate", orderDate.DBValue).DbType = DbType.DateTime; cmd.Parameters.AddWithValue("@CardType", cardType).DbType = DbType.String; cmd.Parameters.AddWithValue("@CardHolder", cardHolder).DbType = DbType.String; cmd.Parameters.AddWithValue("@CreditCard", creditCard).DbType = DbType.String; cmd.Parameters.AddWithValue("@ExpDate", expDate).DbType = DbType.String; cmd.ExecuteNonQuery(); } } }
/// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { _myDateTextBox = new System.Windows.Forms.TextBox(); _mySmartDate = new Csla.SmartDate(true); SuspendLayout(); // // txtDateTime // _myDateTextBox.Location = new System.Drawing.Point(20, 49); _myDateTextBox.MaxLength = 50; _myDateTextBox.Name = "myDateTextBox"; _myDateTextBox.TabIndex = 0; _myDateTextBox.Text = ""; _myDateTextBox.Leave += MyTextBox_Leave; _myDateTextBox.Enter += MyTextBox_Enter; // // DateTimePicker // Controls.Add(_myDateTextBox); // setup events DropDown += SmartDateTimePicker_DropDown; CloseUp += SmartDateTimePicker_CloseUp; FontChanged += SmartDateTimePicker_FontChanged; ForeColorChanged += SmartDateTimePicker_ForeColorChanged; BackColorChanged += SmartDateTimePicker_BackColorChanged; Resize += SmartDateTimePicker_Resize; Enter += SmartDateTimePicker_Enter; FormatChanged += SmartDateTimePicker_FormatChanged; // set format base.Format = DateTimePickerFormat.Short; _customFormat = "d"; _mySmartDate.FormatString = _customFormat; ResumeLayout(false); }
public void ExactDigits_Four() { //presume month before day var success = "1231"; var fail = "3011"; if (_dayBeforeMonth) { success = "3112"; fail = "1130"; } var smartDate = new SmartDate(success); Assert.AreEqual(new DateTime(DateTime.Now.Year, 12, 31).ToString("d"), smartDate); try { smartDate = new SmartDate(fail); Assert.Fail(fail + ": string value shouldn't be convertible to a date"); } catch (ArgumentException) { Assert.AreEqual(new DateTime(DateTime.Now.Year, 12, 31).ToString("d"), smartDate); } }
public void Relative_Days() { var smartDate = new SmartDate("+365"); Assert.AreEqual(DateTime.Now.AddDays(365).ToString("d"), smartDate); var fail = "+a1000"; try { smartDate = new SmartDate(fail); Assert.Fail(fail + ": string value shouldn't be convertible to a date"); } catch (ArgumentException) { Assert.AreEqual(DateTime.Now.AddDays(365).ToString("d"), smartDate); } smartDate = new SmartDate("+ 30"); Assert.AreEqual(DateTime.Now.AddDays(30).ToString("d"), smartDate); smartDate = new SmartDate("-365"); Assert.AreEqual(DateTime.Now.AddDays(-365).ToString("d"), smartDate); try { smartDate = new SmartDate("-a1000"); Assert.Fail(fail + ": string value shouldn't be convertible to a date"); } catch (ArgumentException) { Assert.AreEqual(DateTime.Now.AddDays(-365).ToString("d"), smartDate); } smartDate = new SmartDate("- 30"); Assert.AreEqual(DateTime.Now.AddDays(-30).ToString("d"), smartDate); }
public void ShortForm_DayMonthYear_Big() { //presume month before day var success = "12" + Separator + "31"; var fail = "30" + Separator + "11"; if (_dayBeforeMonth) { success = "31" + Separator + "12"; fail = "11" + Separator + "30"; } if (_yearIsLast) { success += Separator + "2015"; fail += Separator + "2015"; } else { success = "2015" + Separator + success; fail = "2015" + Separator + fail; } var smartDate = new SmartDate(success); Assert.AreEqual(new DateTime(2015, 12, 31).ToString("d"), smartDate); try { smartDate = new SmartDate(fail); Assert.Fail(fail + ": string value shouldn't be convertible to a date"); } catch (ArgumentException) { Assert.AreEqual(new DateTime(2015, 12, 31).ToString("d"), smartDate); } }
public void ShortForm_DayMonth_Big() { //presume month before day var success = "12" + Separator + "31"; var fail = "30" + Separator + "11"; if (_dayBeforeMonth) { success = "31" + Separator + "12"; fail = "11" + Separator + "30"; } var smartDate = new SmartDate(success); Assert.AreEqual(new DateTime(DateTime.Now.Year, 12, 31).ToString("d"), smartDate); try { smartDate = new SmartDate(fail); if (_dayBeforeMonth) Assert.Fail(fail + ": string value shouldn't be convertible to a date"); else Assert.AreEqual(new DateTime(DateTime.Now.Year, 11, 30).ToString("d"), smartDate); } catch (ArgumentException) { Assert.AreEqual(new DateTime(DateTime.Now.Year, 12, 31).ToString("d"), smartDate); } }
public void ShortForm_DayMonthYear_Small() { //presume month before day var success = "1" + Separator + "3"; var fail = "4" + Separator + "2"; if (_dayBeforeMonth) { success = "3" + Separator + "1"; fail = "2" + Separator + "4"; } if (_yearIsLast) { success += Separator + "5"; fail += Separator + "5"; } else { success = "5" + Separator + success; fail = "5" + Separator + fail; } var smartDate = new SmartDate(success); Assert.AreEqual(new DateTime(2005, 1, 3).ToString("d"), smartDate); try { smartDate = new SmartDate(fail); Assert.AreEqual(new DateTime(2005, 4, 2).ToString("d"), smartDate); } catch (ArgumentException) { Assert.AreEqual(new DateTime(2015, 12, 31).ToString("d"), smartDate); } }
public void ExactDigits_Eight() { //presume month before day var success = "1231"; var fail = "3011"; if (_dayBeforeMonth) { success = "3112"; fail = "1130"; } if (_yearIsLast) { success += "2015"; fail += "2015"; } else { success = "2015" + success; fail = "2015" + fail; } var smartDate = new SmartDate(success); Assert.AreEqual(new DateTime(2015, 12, 31).ToString("d"), smartDate); try { smartDate = new SmartDate(fail); Assert.Fail(fail + ": string value shouldn't be convertible to a date"); } catch (ArgumentException) { Assert.AreEqual(new DateTime(2015, 12, 31).ToString("d"), smartDate); } }
public void ShortForm_DayMonth_Small() { //presume month before day var success = "1" + Separator + "3"; var fail = "4" + Separator + "2"; if (_dayBeforeMonth) { success = "3" + Separator + "1"; fail = "2" + Separator + "4"; } var smartDate = new SmartDate(success); Assert.AreEqual(new DateTime(DateTime.Now.Year, 1, 3).ToString("d"), smartDate); try { smartDate = new SmartDate(fail); Assert.AreEqual(new DateTime(DateTime.Now.Year, 4, 2).ToString("d"), smartDate); } catch (ArgumentException) { Assert.AreEqual(new DateTime(DateTime.Now.Year, 1, 3).ToString("d"), smartDate); } }
private void SetMyValue(string text, bool updateBaseValue) { var tempdate = new SmartDate(true); if (SmartDate.TryParse(text, SmartDate.EmptyValue.MinDate, ref tempdate)) { if (tempdate.CompareTo(_mySmartDate) != 0) { _mySmartDate.Text = tempdate.ToString(_customFormat); } } UpdateMyTextBox(); if (updateBaseValue) { SetBaseValue(); } }
public void Relative_Years() { var smartDate = new SmartDate("<<"); Assert.AreEqual(DateTime.Now.AddYears(-1).ToString("d"), smartDate); var fail = "<<y27"; try { smartDate = new SmartDate(fail); Assert.Fail(fail + ": string value shouldn't be convertible to a date"); } catch (ArgumentException) { Assert.AreEqual(DateTime.Now.AddYears(-1).ToString("d"), smartDate); } smartDate = new SmartDate("<< 10"); Assert.AreEqual(DateTime.Now.AddYears(-10).ToString("d"), smartDate); smartDate = new SmartDate(">>"); Assert.AreEqual(DateTime.Now.AddYears(1).ToString("d"), smartDate); try { smartDate = new SmartDate(">>y27"); Assert.Fail(fail + ": string value shouldn't be convertible to a date"); } catch (ArgumentException) { Assert.AreEqual(DateTime.Now.AddYears(1).ToString("d"), smartDate); } smartDate = new SmartDate(">> 10"); Assert.AreEqual(DateTime.Now.AddYears(10).ToString("d"), smartDate); }
/// <summary> /// Converts a string value into a SmartDate. /// </summary> /// <param name="value">String containing the date value.</param> /// <param name="result">The resulting SmartDate value if the parse was successful.</param> /// <returns>A value indicating if the parse was successful.</returns> public static bool TryParse(string value, ref SmartDate result) { return TryParse(value, EmptyValue.MinDate, ref result); }
/// <summary> /// Converts a string value into a SmartDate. /// </summary> /// <param name="value">String containing the date value.</param> /// <param name="emptyValue">Indicates whether an empty date is the min or max date value.</param> /// <param name="result">The resulting SmartDate value if the parse was successful.</param> /// <returns>A value indicating if the parse was successful.</returns> public static bool TryParse(string value, EmptyValue emptyValue, ref SmartDate result) { System.DateTime dateResult = DateTime.MinValue; if (TryStringToDate(value, emptyValue, ref dateResult)) { result = new SmartDate(dateResult, emptyValue); return true; } else { return false; } }
/// <summary> /// Compares one SmartDate to another. /// </summary> /// <remarks> /// This method works the same as the DateTime.CompareTo method /// on the Date datetype, with the exception that it /// understands the concept of empty date values. /// </remarks> /// <param name="value">The date to which we are being compared.</param> /// <returns>A value indicating if the comparison date is less than, equal to or greater than this date.</returns> public int CompareTo(SmartDate value) { if (this.IsEmpty && value.IsEmpty) return 0; else return _date.CompareTo(value.Date); }