Skip to content
This repository has been archived by the owner on Jan 22, 2023. It is now read-only.

Commit

Permalink
adds decades and centuries, more precise calculation, bumps to v0.5.0
Browse files Browse the repository at this point in the history
  • Loading branch information
Jonas Schubert committed Nov 1, 2019
1 parent f67956d commit 3803f21
Show file tree
Hide file tree
Showing 11 changed files with 75 additions and 59 deletions.
17 changes: 13 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
[![Platform](https://img.shields.io/badge/platform-Android-blue.svg)](https://www.android.com)
[![API](https://img.shields.io/badge/API-26+-blue.svg)](https://android-arsenal.com/api?level=26)

[![Version](https://img.shields.io/badge/version-0.4.0-blue.svg)](https://github.com/TimeXt/TimeXt-Java/tree/0.4.0)
[![Build](https://img.shields.io/badge/buildJava-success-green.svg)](releases/lib-2019-07-19-1.jar)
[![Build](https://img.shields.io/badge/buildAndroid-success-green.svg)](releases/lib-android-2019-07-19-2.aar)
[![Version](https://img.shields.io/badge/version-0.5.0-blue.svg)](https://github.com/TimeXt/TimeXt-Java/tree/0.5.0)
[![Build](https://img.shields.io/badge/buildJava-success-green.svg)](releases/lib-2019-11-01-1.jar)
[![Build](https://img.shields.io/badge/buildAndroid-success-green.svg)](releases/lib-android-2019-11-01-1.aar)

[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![Paypal](https://img.shields.io/badge/paypal-donate-blue.svg)](https://www.paypal.me/GuepardoApps)
Expand All @@ -28,6 +28,8 @@ Better use the [Kotlin version](https://github.com/TimeXt/TimeXt-Kotlin/) of thi
### Basics

```java
TimeXt fiveCenturies = DoubleXt.toCenturies(5);
TimeXt tenDecades = DoubleXt.toDecades(10.0);
TimeXt threeYears = DoubleXt.toYears(3.0);
TimeXt oneWeek = IntXt.toWeeks(1);
TimeXt threeDays = LongXt.toDays(3L);
Expand Down Expand Up @@ -85,6 +87,7 @@ HandlerXt.PostDelayed(handler, runnable, new TimeXt(2, TimeXtUnit.Minute));

Since version 0.3.0 TimeXt has new extensions for the long type to display this number value in a human readable string format.
In version 0.4.0 support for Integer and Double was added as well as the new method formatWeeks.
Since version 0.5.0 TimeXt has values for decades and centuries and more precise conversions.

```java
val readableStringFromMillis = LongXt.formatMillis(34325055574L) // 56 weeks, 5 days, 6 hours, 44 minutes, 15 seconds, 574 milliseconds
Expand All @@ -99,6 +102,12 @@ val readableStringFromWeeks = IntXt.formatWeeks(3) // 3 weeks

- Use at least JVM 1.8

## Contributors

| [<img alt="GuepardoApps" src="https://avatars0.githubusercontent.com/u/21952813?v=4&s=117" width="117"/>](https://github.com/GuepardoApps) |
| :---------------------------------------------------------------------------------------------------------------------------------------: |
| [GuepardoApps](https://github.com/GuepardoApps) |

## License

TimeXt-Java is distributed under the MIT license. [See LICENSE](LICENSE.md) for details.
Expand Down Expand Up @@ -129,6 +138,6 @@ SOFTWARE.

## Attention

Migrating from version 0.3.0 or lower to 0.4.0 or upper includes breaking changes.
Migrating from version 0.3.0 or lower to 0.4.0 or upper includes breaking changes.
Class names where shortened from *Extensions to *Xt and unit enum was moved to another package (same as TimeXt) and renamed to TimeXtUnit.
Furthermore all units smaller the unit second got shortened to *s (millis, micros, picos, nanos).
4 changes: 2 additions & 2 deletions lib-android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ android {
defaultConfig {
minSdkVersion 26
targetSdkVersion 28
versionCode 400
versionName "0.4.0"
versionCode 500
versionName "0.5.0"
}

buildTypes {
Expand Down
55 changes: 15 additions & 40 deletions lib-android/lib-android.iml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
<facet type="android-gradle" name="Android-Gradle">
<configuration>
<option name="GRADLE_PROJECT_PATH" value=":lib-android" />
<option name="LAST_SUCCESSFUL_SYNC_AGP_VERSION" value="3.4.0" />
<option name="LAST_KNOWN_AGP_VERSION" value="3.4.0" />
</configuration>
</facet>
<facet type="android" name="Android">
Expand Down Expand Up @@ -33,14 +35,14 @@
<sourceFolder url="file://$MODULE_DIR$/build/generated/aidl_source_output_dir/debug/compileDebugAidl/out" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/renderscript_source_output_dir/debug/compileDebugRenderscript/out" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/debug" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/debug" type="java-resource" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/aidl_source_output_dir/debugAndroidTest/compileDebugAndroidTestAidl/out" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/renderscript_source_output_dir/debugAndroidTest/compileDebugAndroidTestRenderscript/out" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/androidTest/debug" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/androidTest/debug" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/androidTest/debug" type="java-test-resource" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/androidTest/debug" type="java-test-resource" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/test/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/resources" type="java-resource" />
Expand All @@ -49,20 +51,20 @@
<sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/shaders" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTestDebug/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/testDebug/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/main/res" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/main/assets" type="java-resource" />
Expand All @@ -84,38 +86,11 @@
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/build/generated/not_namespaced_r_class_sources" />
<excludeFolder url="file://$MODULE_DIR$/build/generated/source/r" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/aapt_friendly_merged_manifests" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/annotation_processor_list" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/annotations_typedef_file" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/annotations_zip" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/check_manifest_result" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/compile_only_not_namespaced_r_class_jar" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/consumer_proguard_file" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/javac" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/library_and_local_jars_jni" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/library_assets" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/library_manifest" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/lint_jar" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/lint_publish_jar" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/merged_jni_libs" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/merged_manifests" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/merged_shaders" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/packaged-classes" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/packaged_res" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/public_res" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/shader_assets" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/tmp" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/transforms" />
<excludeFolder url="file://$MODULE_DIR$/build/outputs" />
<excludeFolder url="file://$MODULE_DIR$/build/tmp" />
<excludeFolder url="file://$MODULE_DIR$/build" />
</content>
<orderEntry type="jdk" jdkName="Android API 28 Platform" jdkType="Android SDK" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="lib" />
<orderEntry type="module" module-name="lib" />
</component>
</module>
2 changes: 2 additions & 0 deletions lib/lib.iml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
<facet type="android-gradle" name="Android-Gradle">
<configuration>
<option name="GRADLE_PROJECT_PATH" value=":lib" />
<option name="LAST_SUCCESSFUL_SYNC_AGP_VERSION" />
<option name="LAST_KNOWN_AGP_VERSION" />
</configuration>
</facet>
<facet type="java-gradle" name="Java-Gradle">
Expand Down
4 changes: 4 additions & 0 deletions lib/src/main/java/guepardoapps/timext/java/TimeXt.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@ public TimeXt(double value, TimeXtUnit unit) {
this.unit = unit;
}

public double InCenturies() { return this.value * this.unit.conversion / TimeXtUnit.Century.conversion; }

public double InDecades() { return this.value * this.unit.conversion / TimeXtUnit.Decade.conversion; }

public double InYears() { return this.value * this.unit.conversion / TimeXtUnit.Year.conversion; }

public double InWeeks() { return this.value * this.unit.conversion / TimeXtUnit.Week.conversion; }
Expand Down
10 changes: 6 additions & 4 deletions lib/src/main/java/guepardoapps/timext/java/TimeXtUnit.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
package guepardoapps.timext.java;

public enum TimeXtUnit {
Year(365 * 24.0 * 60.0 * 60.0),
Week(7 * 24.0 * 60.0 * 60.0),
Day(24.0 * 60.0 * 60.0),
Hour(60.0 * 60.0),
Century(3155760000.0 * 1e3),
Decade(315576000.0 * 1e3),
Year(31557600.0 * 1e3),
Week(604800.0 * 1e3),
Day(86400.0 * 1e3),
Hour(3600.0 * 1e3),
Minute(60.0),
Second(1),
Millis(1e-3),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,20 +24,28 @@ public static String formatMinutes(double minutes) {
}

public static String formatHours(double hours) {
ArrayList<String> arrayList = format(hours, 60 * 60 * 1000.0);
ArrayList<String> arrayList = format(hours, 3600 * 1000.0);
return arrayList.size() > 0 ? String.join(", ", arrayList) : formatMinutes(60 * hours);
}

public static String formatDays(double days) {
ArrayList<String> arrayList = format(days, 24 * 60 * 60 * 1000.0);
ArrayList<String> arrayList = format(days, 86400 * 1000.0);
return arrayList.size() > 0 ? String.join(", ", arrayList) : formatHours(24 * days);
}

public static String formatWeeks(double weeks) {
ArrayList<String> arrayList = format(weeks, 7 * 24 * 60 * 60 * 1000.0);
ArrayList<String> arrayList = format(weeks, 604800 * 1000.0);
return arrayList.size() > 0 ? String.join(", ", arrayList) : formatDays(7 * weeks);
}

public static TimeXt toCenturies(double value) {
return new TimeXt(value, TimeXtUnit.Century);
}

public static TimeXt toDecades(double value) {
return new TimeXt(value, TimeXtUnit.Decade);
}

public static TimeXt toYears(double value) {
return new TimeXt(value, TimeXtUnit.Year);
}
Expand Down
14 changes: 11 additions & 3 deletions lib/src/main/java/guepardoapps/timext/java/extensions/IntXt.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,20 +24,28 @@ public static String formatMinutes(int minutes) {
}

public static String formatHours(int hours) {
ArrayList<String> arrayList = format(hours, 60 * 60 * 1000.0);
ArrayList<String> arrayList = format(hours, 3600 * 1000.0);
return arrayList.size() > 0 ? String.join(", ", arrayList) : formatMinutes(60 * hours);
}

public static String formatDays(int days) {
ArrayList<String> arrayList = format(days, 24 * 60 * 60 * 1000.0);
ArrayList<String> arrayList = format(days, 86400 * 1000.0);
return arrayList.size() > 0 ? String.join(", ", arrayList) : formatHours(24 * days);
}

public static String formatWeeks(int weeks) {
ArrayList<String> arrayList = format(weeks, 7 * 24 * 60 * 60 * 1000.0);
ArrayList<String> arrayList = format(weeks, 604800 * 1000.0);
return arrayList.size() > 0 ? String.join(", ", arrayList) : formatDays(7 * weeks);
}

public static TimeXt toCenturies(int value) {
return new TimeXt(value, TimeXtUnit.Century);
}

public static TimeXt toDecades(int value) {
return new TimeXt(value, TimeXtUnit.Decade);
}

public static TimeXt toYears(int value) {
return new TimeXt(value, TimeXtUnit.Year);
}
Expand Down
14 changes: 11 additions & 3 deletions lib/src/main/java/guepardoapps/timext/java/extensions/LongXt.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,20 +24,28 @@ public static String formatMinutes(long minutes) {
}

public static String formatHours(long hours) {
ArrayList<String> arrayList = format(hours, 60 * 60 * 1000.0);
ArrayList<String> arrayList = format(hours, 3600 * 1000.0);
return arrayList.size() > 0 ? String.join(", ", arrayList) : formatMinutes(60 * hours);
}

public static String formatDays(long days) {
ArrayList<String> arrayList = format(days, 24 * 60 * 60 * 1000.0);
ArrayList<String> arrayList = format(days, 86400 * 1000.0);
return arrayList.size() > 0 ? String.join(", ", arrayList) : formatHours(24 * days);
}

public static String formatWeeks(long weeks) {
ArrayList<String> arrayList = format(weeks, 7 * 24 * 60 * 60 * 1000.0);
ArrayList<String> arrayList = format(weeks, 604800 * 1000.0);
return arrayList.size() > 0 ? String.join(", ", arrayList) : formatDays(7 * weeks);
}

public static TimeXt toCenturies(long value) {
return new TimeXt(value, TimeXtUnit.Century);
}

public static TimeXt toDecades(long value) {
return new TimeXt(value, TimeXtUnit.Decade);
}

public static TimeXt toYears(long value) {
return new TimeXt(value, TimeXtUnit.Year);
}
Expand Down
Binary file added releases/lib-2019-11-01-1.jar
Binary file not shown.
Binary file added releases/lib-android-2019-11-01-1.aar
Binary file not shown.

0 comments on commit 3803f21

Please sign in to comment.