Pith - stave
stave/app/src/main/kotlin/com/vgmlr/stave/StaveOTCClock.kt [1.4 kb]
Modified: 20:14:55 158 026 (24 Aug 026)
0 Days Ago
package com.vgmlr.stave

import java.time.LocalDate
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
import java.time.temporal.ChronoUnit
import java.util.Locale

object StaveOTCClock {

    private fun newYearOf(date: LocalDate): LocalDate {
        val march20 = LocalDate.of(date.year, 3, 20)
        return if (date.isBefore(march20)) LocalDate.of(date.year - 1, 3, 20) else march20
    }

    fun getOTCTime(dateTime: LocalDateTime): String {
        val newYear = newYearOf(dateTime.toLocalDate())
        val daysSince = ChronoUnit.DAYS.between(newYear, dateTime.toLocalDate()) + 1
        val otcYear = "0" + newYear.format(DateTimeFormatter.ofPattern("yy"))
        val timePart = dateTime.format(DateTimeFormatter.ofPattern("HH:mm"))
        val ddMonPart = dateTime.format(DateTimeFormatter.ofPattern("dd MMM", Locale.ENGLISH))
        return "$timePart $daysSince $otcYear ($ddMonPart)"
    }

    fun getCurrentOTCTime(): String = getOTCTime(LocalDateTime.now())

    fun getFileNameTimestamp(): String {
        val now = LocalDateTime.now()
        val newYear = newYearOf(now.toLocalDate())
        val daysSince = ChronoUnit.DAYS.between(newYear, now.toLocalDate()) + 1
        val otcYear = "0" + newYear.format(DateTimeFormatter.ofPattern("yy"))
        val hhmmss = now.format(DateTimeFormatter.ofPattern("HHmmss"))
        return "$otcYear$daysSince$hhmmss"
    }
}
Updates
Stave - Android 158.026
Kerf - Android 157.026
Kiln - Android 157.026
Wedge - Android 156.026
Whittle - Linux 155.026

Menu
Calendar
Project Tin (024/029)
Miter
RSS Feed
User Avatar
@vgmlr
=SUM(parts)
0.00256
257,428 (+38)