public void TestGetTimeOfDay() { PhpArray result; result = PhpDateTime.GetTimeOfDay(new DateTime(2005, 10, 1), PacificTimeZone); Assert.AreEqual((int)result["minuteswest"], 480); Assert.AreEqual((int)result["dsttime"], 1); result = PhpDateTime.GetTimeOfDay(new DateTime(2005, 11, 1), PacificTimeZone); Assert.AreEqual((int)result["minuteswest"], 480); Assert.AreEqual((int)result["dsttime"], 1); result = PhpDateTime.GetTimeOfDay(new DateTime(2005, 11, 1), NepalTimeZone); Assert.AreEqual((int)result["minuteswest"], -345); Assert.AreEqual((int)result["dsttime"], 0); result = PhpDateTime.GetTimeOfDay(new DateTime(2005, 10, 1), GmtTimeZone); Assert.AreEqual((int)result["minuteswest"], 0); Assert.AreEqual((int)result["dsttime"], 1); result = PhpDateTime.GetTimeOfDay(new DateTime(2005, 11, 1), GmtTimeZone); Assert.AreEqual((int)result["minuteswest"], 0); Assert.AreEqual((int)result["dsttime"], 1); result = PhpDateTime.GetTimeOfDay(new DateTime(2005, 11, 1), DateTimeUtils.UtcTimeZone); Assert.AreEqual((int)result["minuteswest"], 0); Assert.AreEqual((int)result["dsttime"], 0); }
public void TestGetLocalTime() { #if DEBUG PhpArray result1, result2; PhpTimeZone.CurrentTimeZone = PhpTimeZone.GetTimeZone("UTC"); DateTime dt = new DateTime(2005, 11, 4, 5, 4, 3, 132); result1 = PhpDateTime.GetLocalTime(dt, false); result2 = PhpDateTime.GetLocalTime(dt, true); Assert.AreEqual((int)result1[0], 3); Assert.AreEqual((int)result1[1], 4); Assert.AreEqual((int)result1[2], 5); Assert.AreEqual((int)result1[3], 4); Assert.AreEqual((int)result1[4], 10); Assert.AreEqual((int)result1[5], 105); Assert.AreEqual((int)result1[6], 5); Assert.AreEqual((int)result1[7], 307); Assert.AreEqual((int)result1[8], 0); Assert.AreEqual((int)result1[0], (int)result2["tm_sec"]); Assert.AreEqual((int)result1[1], (int)result2["tm_min"]); Assert.AreEqual((int)result1[2], (int)result2["tm_hour"]); Assert.AreEqual((int)result1[3], (int)result2["tm_mday"]); Assert.AreEqual((int)result1[4], (int)result2["tm_mon"]); Assert.AreEqual((int)result1[5], (int)result2["tm_year"]); Assert.AreEqual((int)result1[6], (int)result2["tm_wday"]); Assert.AreEqual((int)result1[7], (int)result2["tm_yday"]); Assert.AreEqual((int)result1[8], (int)result2["tm_isdst"]); #endif }
public void TestStringToTime() { TimeZoneInfo[] all_zones = { NepalTimeZone, PacificTimeZone, GmtTimeZone }; var utc_zone = DateTimeUtils.UtcTimeZone; var nep_zone = NepalTimeZone; var pac_zone = PacificTimeZone; TimeZoneInfo[] utc_zones = { utc_zone }; TimeZoneInfo[] nep_zones = { nep_zone }; TimeZoneInfo[] pac_zones = { pac_zone }; DateTime time1 = new DateTime(2005, 11, 13, 17, 41, 43); // mktime(17,41,43,11,13,2005); StringToTimeCase[] cases = { new StringToTimeCase("10 September 2000", time1, pac_zone, "", pac_zones), new StringToTimeCase("+0545", time1, pac_zone, "", pac_zones), // new StringToTimeCase("+0545", time1,pac_zone, "11:56:43 11/13/2005", pac_zones), // new StringToTimeCase("11/31/2005", time1,pac_zone, "17:41:43 11/13/2005", pac_zones), // new StringToTimeCase("-1 month +0545",11,01,2005,pac_zone, "20:15:00 09-30-2005", pac_zones), // new StringToTimeCase("@-1519789808",null,pac_zones), // new StringToTimeCase( "1/1/1900", null, all_zones), // new StringToTimeCase("11/1/2005", "00:00:00 11/01/2005", nep_zones), // // // note: goes over daylight savings change date: // new StringToTimeCase( "+1 month", 10,01,2005,utc_zone, "00:00:00 11/01/2005", utc_zones), // new StringToTimeCase( "+1 month", 10,01,2005,nep_zone, "00:00:00 11/01/2005", nep_zones), // new StringToTimeCase( "+1 month", 10,01,2005,pac_zone, "00:00:00 11/01/2005", pac_zones), // new StringToTimeCase( "-1 month", 11,01,2005,utc_zone, "00:00:00 10/01/2005", utc_zones), // new StringToTimeCase( "-1 month", 11,01,2005,nep_zone, "00:00:00 10/01/2005", nep_zones), // new StringToTimeCase( "-1 month", 11,01,2005,pac_zone, "00:00:00 10/01/2005", pac_zones), // // new StringToTimeCase("now", time1,pac_zone, "17:41:43 11/13/2005", pac_zones), // new StringToTimeCase("10 September 2000", time1,pac_zone, "00:00:00 09/10/2000", pac_zones), // new StringToTimeCase("+1 day", time1,pac_zone, "17:41:43 11/14/2005", pac_zones), // new StringToTimeCase("+1 week", time1,pac_zone, "17:41:43 11/20/2005", pac_zones), // new StringToTimeCase("+1 week 2 days 4 hours 2 seconds", time1,pac_zone, "21:41:45 11/22/2005", pac_zones), // new StringToTimeCase("next Thursday", time1,pac_zone, "00:00:00 11/17/2005", pac_zones), // new StringToTimeCase("last Monday", time1,pac_zone, "00:00:00 11/07/2005", pac_zones), // new StringToTimeCase("2004-12-31", time1,pac_zone, "00:00:00 12/31/2004", pac_zones), // new StringToTimeCase("2005-04-15", time1,pac_zone, "00:00:00 04/15/2005", pac_zones), // new StringToTimeCase("last Wednesday", time1,pac_zone, "00:00:00 11/09/2005", pac_zones), // new StringToTimeCase("04/05/2005", time1,pac_zone, "00:00:00 04/05/2005", pac_zones), // new StringToTimeCase("Thu, 31 Jul 2003 13:02:39 -0700", time1,pac_zone, "13:02:39 07/31/2003", pac_zones), // new StringToTimeCase("today 00:00:00", time1,pac_zone, "00:00:00 11/13/2005", pac_zones), // new StringToTimeCase("last Friday", time1,pac_zone, "00:00:00 11/11/2005", pac_zones), // new StringToTimeCase("2004-12-01", time1,pac_zone, "00:00:00 12/01/2004", pac_zones), // new StringToTimeCase("- 1week", time1,pac_zone, "16:00:00 12/31/1969", pac_zones), // new StringToTimeCase("2004-06-13 09:20:00.0", time1,pac_zone, "09:20:00 06/13/2004", pac_zones), // new StringToTimeCase("+10 seconds", time1,pac_zone, "17:41:53 11/13/2005", pac_zones), // new StringToTimeCase("2004-04-04 02:00:00 GMT", time1,pac_zone, "18:00:00 04/03/2004", pac_zones), // new StringToTimeCase("2004-04-04 01:59:59 UTC", time1,pac_zone, "16:00:00 12/31/1969", pac_zones), // new StringToTimeCase("2004-06-13 09:20:00.0", time1,pac_zone, "09:20:00 06/13/2004", pac_zones), // new StringToTimeCase("2004-04-04 02:00:00", time1,pac_zone, "03:00:00 04/04/2004", pac_zones), // new StringToTimeCase("last sunday 12:00:00", time1,pac_zone, "12:00:00 11/06/2005", pac_zones), // new StringToTimeCase("last sunday", time1,pac_zone, "00:00:00 11/06/2005", pac_zones), // new StringToTimeCase("01-jan-70 01:00", time1,pac_zone, "01:00:00 01/01/1970", pac_zones), // new StringToTimeCase("01-jan-70 02:00", time1,pac_zone, "02:00:00 01/01/1970", pac_zones), }; foreach (StringToTimeCase c in cases) { foreach (var zone in c.Zones) { //DateTimeUtils.SetCurrentTimeZone(zone); object timestamp = PhpDateTime.StringToTime(c.String, c.StartTime); // string str = null; // if (timestamp is int) // str = FormatDate("H:i:s m/d/Y",(int)timestamp); else // Debug.Assert(!(bool)timestamp); // // if (str!=c.Result) // Debug.Fail(); } } }