CATATAN: Karena saya sendiri orang Belanda, semua tanggal dalam dd-MM-yyyy
format Belanda dalam deskripsi tantangan dan kasus uji.
Tantangan:
Input:
Tanggal mulai ; Tanggal akhir ; Digit
Keluaran:
Semua tanggal dalam rentang (termasuk di kedua sisi), yang berisi jumlah digit unik dalam tanggalnya.
Contoh:
Input: Tanggal mulai: 12-11-1991
; Tanggal End: 02-02-1992
; Angka:4
Output:
Dengan 0s terkemuka untuk hari / bulan:
[20-11-1991, 23-11-1991, 24-11-1991, 25-11-1991, 26-11-1991, 27-11-1991, 28-11-1991, 30-11-1991, 01-12-1991, 02-12-1991, 09-12-1991, 10-12-1991, 13-12-1991, 14-12-1991, 15-12-1991, 16-12-1991, 17-12-1991, 18-12-1991, 20-12-1991, 23-12-1991, 24-12-1991, 25-12-1991, 26-12-1991, 27-12-1991, 28-12-1991, 31-12-1991, 01-01-1992, 02-01-1992, 09-01-1992, 10-01-1992, 11-01-1992, 12-01-1992, 19-01-1992, 20-01-1992, 21-01-1992, 22-01-1992, 29-01-1992, 01-02-1992, 02-02-1992]
Tanpa memimpin 0s selama berhari-hari / bulan:
[20-11-1991, 23-11-1991, 24-11-1991, 25-11-1991, 26-11-1991, 27-11-1991, 28-11-1991, 30-11-1991, 3-12-1991, 4-12-1991, 5-12-1991, 6-12-1991, 7-12-1991, 8-12-1991, 10-12-1991, 13-12-1991, 14-12-1991, 15-12-1991, 16-12-1991, 17-12-1991, 18-12-1991, 20-12-1991, 23-12-1991, 24-12-1991, 25-12-1991, 26-12-1991, 27-12-1991, 28-12-1991, 31-12-1991, 3-1-1992, 4-1-1992, 5-1-1992, 6-1-1992, 7-1-1992, 8-1-1992, 10-1-1992, 13-1-1992, 14-1-1992, 15-1-1992, 16-1-1992, 17-1-1992, 18-1-1992, 20-1-1992, 23-1-1992, 24-1-1992, 25-1-1992, 26-1-1992, 27-1-1992, 28-1-1992, 31-1-1992]
Aturan tantangan:
- Tanggal input dan output mungkin dalam format (tanggal-) yang masuk akal. Dapat berupa string dalam
dMy
format apa pun (termasuk pemisah opsional), daftar tiga bilangan bulat, objek Tanggal asli bahasa Anda, dll. Keluaran dapat berupa daftar / larik / aliran, dicetak ke STDOUT, satu string yang dibatasi, dll. - Anda diizinkan untuk memasukkan atau mengecualikan 0s terkemuka selama berhari-hari / bulan dalam output Anda. Silakan tentukan yang mana dari dua yang Anda gunakan dalam jawaban Anda , karena itu akan menyebabkan hasil yang berbeda. Yaitu
1-1-1991
memiliki 2 digit unik, tetapi01-01-1991
sebagai 3 digit unik. - Anda tidak harus berurusan dengan tahun kabisat dan perbedaan kalender Gregorian vs Julian. Anda dapat mengasumsikan rentang tanggal yang diberikan dalam kasus uji tidak akan pernah melampaui tanggal 28 Februari / 1 Maret selama bertahun-tahun dapat habis dibagi 4.
- Input-digit dijamin berada dalam kisaran , jadi berurusan dengan tidak ditentukan (mengembalikan daftar kosong akan paling masuk akal, tetapi memberikan kesalahan atau hasil yang salah juga baik-baik saja; Anda menang harus berurusan dengan input itu).
Aturan umum:
- Ini adalah kode-golf , jadi jawaban tersingkat dalam byte menang.
Jangan biarkan bahasa kode-golf mencegah Anda memposting jawaban dengan bahasa non-codegolf. Cobalah untuk memberikan jawaban sesingkat mungkin untuk bahasa pemrograman 'apa pun'. - Aturan standar berlaku untuk jawaban Anda dengan aturan I / O default , sehingga Anda diizinkan untuk menggunakan STDIN / STDOUT, fungsi / metode dengan parameter yang tepat dan tipe pengembalian, program penuh. Panggilanmu.
- Celah default tidak diperbolehkan.
- Jika memungkinkan, silakan tambahkan tautan dengan tes untuk kode Anda (yaitu TIO ).
- Juga, menambahkan penjelasan untuk jawaban Anda sangat dianjurkan.
Kasus uji:
Inputs: [12-11-1991, 02-02-1992], 4
Outputs with leading 0s: [20-11-1991, 23-11-1991, 24-11-1991, 25-11-1991, 26-11-1991, 27-11-1991, 28-11-1991, 30-11-1991, 01-12-1991, 02-12-1991, 09-12-1991, 10-12-1991, 13-12-1991, 14-12-1991, 15-12-1991, 16-12-1991, 17-12-1991, 18-12-1991, 20-12-1991, 23-12-1991, 24-12-1991, 25-12-1991, 26-12-1991, 27-12-1991, 28-12-1991, 31-12-1991, 01-01-1992, 02-01-1992, 09-01-1992, 10-01-1992, 11-01-1992, 12-01-1992, 19-01-1992, 20-01-1992, 21-01-1992, 22-01-1992, 29-01-1992, 01-02-1992, 02-02-1992]
Outputs without leading 0s: [20-11-1991, 23-11-1991, 24-11-1991, 25-11-1991, 26-11-1991, 27-11-1991, 28-11-1991, 30-11-1991, 3-12-1991, 4-12-1991, 5-12-1991, 6-12-1991, 7-12-1991, 8-12-1991, 10-12-1991, 13-12-1991, 14-12-1991, 15-12-1991, 16-12-1991, 17-12-1991, 18-12-1991, 20-12-1991, 23-12-1991, 24-12-1991, 25-12-1991, 26-12-1991, 27-12-1991, 28-12-1991, 31-12-1991, 3-1-1992, 4-1-1992, 5-1-1992, 6-1-1992, 7-1-1992, 8-1-1992, 10-1-1992, 13-1-1992, 14-1-1992, 15-1-1992, 16-1-1992, 17-1-1992, 18-1-1992, 20-1-1992, 23-1-1992, 24-1-1992, 25-1-1992, 26-1-1992, 27-1-1992, 28-1-1992, 31-1-1992]
Inputs: [19-09-2019, 30-09-2019], 5
Outputs (same with and without leading 0s): [23-09-2019, 24-09-2019, 25-09-2019, 26-09-2019, 27-09-2019, 28-09-2019, 30-09-2019]
Inputs: [19-09-2019, 30-09-2019], 8
Output (same with and without leading 0s): []
Inputs: [20-06-1749, 30-06-1749], 8
Outputs with leading 0s: [23-06-1749, 25-06-1749, 28-06-1749]
Outputs without leading 0s: []
Inputs: [10-12-1969, 12-01-1970], 6
Outputs (same with and without leading 0s): [30-12-1969]
Inputs: [10-12-1969, 12-01-1970], 5
Outputs with leading 0s: [10-12-1969, 13-12-1969, 14-12-1969, 15-12-1969, 17-12-1969, 18-12-1969, 20-12-1969, 23-12-1969, 24-12-1969, 25-12-1969, 27-12-1969, 28-12-1969, 31-12-1969, 02-01-1970, 03-01-1970, 04-01-1970, 05-01-1970, 06-01-1970, 08-01-1970, 12-01-1970]
Outputs without leading 0s: [10-12-1969, 13-12-1969, 14-12-1969, 15-12-1969, 17-12-1969, 18-12-1969, 20-12-1969, 23-12-1969, 24-12-1969, 25-12-1969, 27-12-1969, 28-12-1969, 31-12-1969, 2-1-1970, 3-1-1970, 4-1-1970, 5-1-1970, 6-1-1970, 8-1-1970, 12-1-1970]
Inputs: [11-11-1111, 11-11-1111], 1
Output (same with and without leading 0s): [11-11-1111]
YYYY-MM-DDThh:mm:ss.mmm +hh:mm
:, + hh: mm menjadi waktu lokal Anda diimbangi dari UTC.)Jawaban:
Japt , 23 byte
Mengambil input tanggal sebagai cap waktu Unix, mengeluarkan serangkaian string dengan pemformatan dan kepemimpinan
0
bergantung pada lokal Anda. Akan 1 byte lebih pendek di Japt v2 tetapi tampaknya ada bug ketika mengkonversiDate
objek ke string.Cobalah
sumber
R , 81 byte
Cobalah online!
Menggunakan format tanggal asli R dan memiliki angka nol di depan pada hari dan bulan.
sumber
Merah , 93 byte
Cobalah online!
Tanpa memimpin 0s selama berhari-hari / bulan.
Sayang sekali Red mengkonversi secara internal
09-10-2019
ke9-Oct-2019
- itu sebabnya saya perlu mengekstrak hari / bulan / tahun secara individual.sumber
-=+*<>?!~&
, itu sebabnya spasi (atau(...)[...]"..."
) diperlukan.Python 3.8 (pra-rilis) , 84 byte
-6 byte terima kasih kepada Gloweye
Fungsi tanpa nama yang mengembalikan daftar string (menghitung / termasuk nol di depan) yang menerima tiga argumen:
s
, awal - adatetime.date
objek;e
, akhir - sebuahdatetime.date
objek; dann
, jumlah hari - suatuint
objek.Cobalah online!
Catatan: Ketika fungsi menerima
datetime.date
objek, saya belum menghitung kode impor untuk itu (dan telah bekerja mengimpordatetime.timedelta
objek karena dapat diakses secara tidak langsung melalui pengurangan objek input ini).sumber
type(obj)
lebih pendek 3 byte dariobj.__class__
.__class__
dan membuat komentar cepat. Selalu senang membantu.JavaScript (ES6), 91 byte
Mengambil input sebagai
(n)(end)(start)
, di mana tanggal diharapkan sebagai cap waktu Unix dalam milidetik. Mengembalikan daftar tanggal yang dipisahkan ruang dalam formatyyyy-mm-dd
.Leading 0s disertakan.
Cobalah online!
sumber
PHP , 90 byte
Cobalah online!
Ini dengan 0s terkemuka. Input adalah argumen perintah (
$argv
) dan tanggal adalah cap waktu Unix dalam beberapa hari (pada dasarnya detik standar / 86400), saya menggunakan format ini karena kami tidak memerlukan waktu dalam tantangan ini dan memungkinkan saya untuk bermain 1 byte lebih banyak. Terus menambahkan hari untuk memulai sampai mencapai akhir dan mencetak tanggal dengan$n
angka unik di dalamnya, dipisahkan oleh_
dalamYmd
Format.Juga memiliki alternatif 89 byte yang mencetak tanggal ke keluaran dalam format yang sama dengan input (cap waktu Unix dalam hari).
sumber
Java (JDK) , 86 byte
Cobalah online!
Saya memilih menggunakan pemimpin
0
s.Kredit
sumber
datesUntil
untuk 103 byte . ;) Jawaban bagus. Saya tidak melihat apa-apa yang bisa bermain golf secara pribadi..plusDays(1)
dan hapus jawaban.forEach(System.out::println)
itu dan ini adalah jawaban yang sangat bagus karena ketika Anda menulis, tanggal dapat dikembalikan karena objek nilai dan aliran diizinkan. ;-) Saya tidak punya petunjuk yangdatesUntil
bahkan ada! Terima kasih untuk itu :-)Rubi
-rdate
, 54 byteMembawa 2 objek Date dan nomor sebagai input, dan mengembalikan daftar objek Date sebagai output. Menangani tahun kabisat dan menggunakan nol terkemuka.
Cobalah online!
sumber
C # (Visual C # Interactive Compiler)
Tanpa memimpin 0s,
104, 103 byteCobalah online!
Dengan 0s awal,
106105 byteCobalah online!
sumber
x =>$"
dalam kedua versi Anda untuk -1. :)Kotlin, 119 byte
Tanpa 0s terkemuka, mengambil dua
java.time.LocalDate
danLong
, mengembalikanStream
dariLocalDate
ssumber
it.toString()
dengan(it+"")
untuk menyimpan beberapa byte? Saya tahu ini dimungkinkan dalam beberapa bahasa lain seperti Java atau .NET C #.