Skip to content

Commit

Permalink
Introduced return type Unit to the Parse Method!
Browse files Browse the repository at this point in the history
  • Loading branch information
jadiagaurang committed Feb 9, 2022
1 parent 2a9de6b commit b7c85ca
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 25 deletions.
18 changes: 13 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,35 +9,43 @@ Parse a human readable time string into a time based value.
1. Simple
```csharp
TimeStringUtil objTimeString = new TimeStringUtil();
Int64 intTotalSeconds = objTimeString.parseToSeconds("1d 6h 30m 15s");
Int64 intTotalSeconds = objTimeString.Parse("1d 6h 30m 15s");

// intTotalSeconds = 109815
```

2. Complex
```csharp
TimeStringUtil objTimeString = new TimeStringUtil();
Int64 intTotalSeconds = objTimeString.parseToSeconds("1y 2mth 4w 7d 12h 30m 15s 1000ms");
Int64 intTotalSeconds = objTimeString.Parse("1y 2mth 4w 7d 12h 30m 15s 1000ms");

// intTotalSeconds = 39886216
```

3. Messy
```csharp
TimeStringUtil objTimeString = new TimeStringUtil();
Int64 intTotalSeconds = objTimeString.parseToSeconds("9 d 18hrs 27 mIn 3 6seC 1000 milli ");
Int64 intTotalSeconds = objTimeString.Parse("9 d 18hrs 27 mIn 3 6seC 1000 milli ");

// intTotalSeconds = 844057
```

4. Parse to TimeSpan
```csharp
TimeStringUtil objTimeString = new TimeStringUtil();
TimeSpan tsNineDays = objTimeString.parseToTimeSpan("9d");
TimeSpan tsNineDays = objTimeString.ParseToTimeSpan("9d");

// tsNineDays = new TimeSpan(9, 0, 0, 0)
```

5. Parse to DateTime
```csharp
TimeStringUtil objTimeString = new TimeStringUtil();
DateTime dtEighteenDays = objTimeString.ParseToDateTime("18d");

// dtEighteenDays.DayOfWeek = DateTime.Now.AddDays(18).DayOfWeek
```

5. Custom Args
```csharp
DEFAULT_OPTS objArgs = new DEFAULT_OPTS() {
Expand All @@ -50,7 +58,7 @@ DEFAULT_OPTS objArgs = new DEFAULT_OPTS() {

TimeStringUtil objTimeString = new TimeStringUtil(objArgs);

Int64 intTotalSeconds = objTimeString.parseToSeconds("1y");
Int64 intTotalSeconds = objTimeString.Parse("1y");

// intTotalSeconds = 31557600
```
Expand Down
37 changes: 23 additions & 14 deletions TimeString.Tests/utTimeStringUtil.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ public class utTimeStringUtil {
public void tmParseSimple() {
TimeStringUtil objTimeString = new TimeStringUtil();

Int64 intTotalSeconds = objTimeString.parseToSeconds("1d 6h 30m 15s");
Int64 intTotalSeconds = objTimeString.Parse("1d 6h 30m 15s");

Assert.AreEqual(intTotalSeconds, 109815);
}
Expand All @@ -21,7 +21,7 @@ public void tmParseSimple() {
public void tmParseComplex() {
TimeStringUtil objTimeString = new TimeStringUtil();

Int64 intTotalSeconds = objTimeString.parseToSeconds("1y 2mth 4w 7d 12h 30m 15s 1000ms");
Int64 intTotalSeconds = objTimeString.Parse("1y 2mth 4w 7d 12h 30m 15s 1000ms");

Assert.AreEqual(intTotalSeconds, 39886216);
}
Expand All @@ -30,7 +30,7 @@ public void tmParseComplex() {
public void tmParseMessyString() {
TimeStringUtil objTimeString = new TimeStringUtil();

Int64 intTotalSeconds = objTimeString.parseToSeconds("9 d 18hrs 27 mIn 3 6seC 1000 milli ");
Int64 intTotalSeconds = objTimeString.Parse("9 d 18hrs 27 mIn 3 6seC 1000 milli ");

Assert.AreEqual(intTotalSeconds, 844057);
}
Expand All @@ -47,16 +47,25 @@ public void tmParseWithCustomDefaultOptions() {

TimeStringUtil objTimeString = new TimeStringUtil(objArgs);

Int64 intTotalSeconds = objTimeString.parseToSeconds("1y");
Int64 intTotalSeconds = objTimeString.Parse("1y");

Assert.AreEqual(intTotalSeconds, 31557600);
}

[TestMethod]
public void tmParseDayToHours() {
TimeStringUtil objTimeString = new TimeStringUtil();

Int64 intOneDayTotalHours = objTimeString.Parse("1d", "h");

Assert.AreEqual(intOneDayTotalHours, 24);
}

[TestMethod]
public void tmParseToTimeSpan() {
TimeStringUtil objTimeString = new TimeStringUtil();

TimeSpan tsNineDays = objTimeString.parseToTimeSpan("9d");
TimeSpan tsNineDays = objTimeString.ParseToTimeSpan("9d");

Assert.AreEqual(tsNineDays, new TimeSpan(9, 0, 0, 0));
}
Expand All @@ -65,7 +74,7 @@ public void tmParseToTimeSpan() {
public void tmParseToDateTime() {
TimeStringUtil objTimeString = new TimeStringUtil();

DateTime dtEighteenDays = objTimeString.parseToDateTime("18d");
DateTime dtEighteenDays = objTimeString.ParseToDateTime("18d");

Assert.AreEqual(dtEighteenDays.DayOfWeek, DateTime.Now.AddDays(18).DayOfWeek);
}
Expand All @@ -74,7 +83,7 @@ public void tmParseToDateTime() {
public void tmParseYear() {
TimeStringUtil objTimeString = new TimeStringUtil();

Int64 intOneYearTotalSeconds = objTimeString.parseToSeconds("1y");
Int64 intOneYearTotalSeconds = objTimeString.Parse("1y");

Assert.AreEqual(intOneYearTotalSeconds, 31557600);
}
Expand All @@ -83,7 +92,7 @@ public void tmParseYear() {
public void tmParseMonth() {
TimeStringUtil objTimeString = new TimeStringUtil();

Int64 intTwoMonthsTotalSeconds = objTimeString.parseToSeconds("2mth");
Int64 intTwoMonthsTotalSeconds = objTimeString.Parse("2mth");

Assert.AreEqual(intTwoMonthsTotalSeconds, 5259600);
}
Expand All @@ -92,7 +101,7 @@ public void tmParseMonth() {
public void tmParseWeek() {
TimeStringUtil objTimeString = new TimeStringUtil();

Int64 intFourWeeksTotalSeconds = objTimeString.parseToSeconds("4w");
Int64 intFourWeeksTotalSeconds = objTimeString.Parse("4w");

Assert.AreEqual(intFourWeeksTotalSeconds, 2419200);
}
Expand All @@ -101,7 +110,7 @@ public void tmParseWeek() {
public void tmParseDay() {
TimeStringUtil objTimeString = new TimeStringUtil();

Int64 intSevenDaysTotalSeconds = objTimeString.parseToSeconds("7d");
Int64 intSevenDaysTotalSeconds = objTimeString.Parse("7d");

Assert.AreEqual(intSevenDaysTotalSeconds, 604800);
}
Expand All @@ -110,7 +119,7 @@ public void tmParseDay() {
public void tmParseHour() {
TimeStringUtil objTimeString = new TimeStringUtil();

Int64 intTwelveHoursTotalSeconds = objTimeString.parseToSeconds("12h");
Int64 intTwelveHoursTotalSeconds = objTimeString.Parse("12h");

Assert.AreEqual(intTwelveHoursTotalSeconds, 43200);
}
Expand All @@ -119,7 +128,7 @@ public void tmParseHour() {
public void tmParseMinute() {
TimeStringUtil objTimeString = new TimeStringUtil();

Int64 intThirtyMinutesTotalSeconds = objTimeString.parseToSeconds("30m");
Int64 intThirtyMinutesTotalSeconds = objTimeString.Parse("30m");

Assert.AreEqual(intThirtyMinutesTotalSeconds, 1800);
}
Expand All @@ -128,7 +137,7 @@ public void tmParseMinute() {
public void tmParseSecond() {
TimeStringUtil objTimeString = new TimeStringUtil();

Int64 intTifteenSecondsTotalSeconds = objTimeString.parseToSeconds("15s");
Int64 intTifteenSecondsTotalSeconds = objTimeString.Parse("15s");

Assert.AreEqual(intTifteenSecondsTotalSeconds, 15);
}
Expand All @@ -137,7 +146,7 @@ public void tmParseSecond() {
public void tmParseMilisecond() {
TimeStringUtil objTimeString = new TimeStringUtil();

Int64 intOneThousandMilisecondsTotalSeconds = objTimeString.parseToSeconds("1000ms");
Int64 intOneThousandMilisecondsTotalSeconds = objTimeString.Parse("1000ms");

Assert.AreEqual(intOneThousandMilisecondsTotalSeconds, 1);
}
Expand Down
21 changes: 15 additions & 6 deletions TimeString/TimeStringUtil.cs
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public TimeStringUtil(DEFAULT_OPTS objCustomOptions) {
}
}

public Int64 parseToSeconds(String strTimeString) {
public Int64 Parse(String strTimeString, String strReturnUnit = "s") {
Int64 intTotalSeconds = 0;

strTimeString = strTimeString.ToLower();
Expand All @@ -71,15 +71,20 @@ public Int64 parseToSeconds(String strTimeString) {
}
}

return intTotalSeconds;
if (!String.IsNullOrEmpty(strReturnUnit)) {
return this.convert(intTotalSeconds, strReturnUnit);
}
else {
return intTotalSeconds;
}
}

public TimeSpan parseToTimeSpan(String strTimeString) {
return TimeSpan.FromSeconds(this.parseToSeconds(strTimeString));
public TimeSpan ParseToTimeSpan(String strTimeString) {
return TimeSpan.FromSeconds(this.Parse(strTimeString));
}

public DateTime parseToDateTime(String strTimeString) {
return DateTime.Now.AddSeconds(this.parseToSeconds(strTimeString));
public DateTime ParseToDateTime(String strTimeString) {
return DateTime.Now.AddSeconds(this.Parse(strTimeString));
}

private Int64 getSeconds(String strValue, String strUnit) {
Expand Down Expand Up @@ -111,5 +116,9 @@ private UNIT_VALUES getUnitValues() {

return unitValues;
}

private Int64 convert(Int64 intTotalSeconds, String strReturnUnit) {
return Convert.ToInt64(intTotalSeconds / this.getUnitValues().units[this.getUnitKey(strReturnUnit)]);
}
}
}

0 comments on commit b7c85ca

Please sign in to comment.