Date format: Difference between revisions

3,699 bytes added ,  18 days ago
 
(12 intermediate revisions by 9 users not shown)
Line 1,890:
Forth is less of a language and more of an extensible toolkit of simple routines. This version attempts to demonstrate using the simple routines to extend Forth. Then using the language extensions and the power of concatenative language to solve the problem. This solution could create numerous date formats as one line definitions now that we have our "date" words defined. Typically these extensions would be saved as a library file.
 
<LANGsyntaxhighlight FORTHlang="forth">\ Build up a "language" for date formatting
 
\ utility words
Line 1,950:
\ Rosetta Date Format 2
: LONG.DATE ( d m y -- )
3DUP CDAY DOW ]DAY$. ',' -ROT ]MONTH$. SPACE ##. ',' ####. ;</LANGsyntaxhighlight>
 
 
 
Test at the Forth Console
<LANGsyntaxhighlight FORTHlang="forth"> 5 7 2018 Y-M-D. 2018-07-05 ok
ok
5 7 2018 LONG.DATE Thursday, July 05, 2018 ok
</syntaxhighlight>
</LANG>
 
=={{header|Fortran}}==
Line 2,181 ⟶ 2,182:
 
=={{header|Java}}==
<syntaxhighlight lang="java">
public static void main(String[] args) {
long millis = System.currentTimeMillis();
System.out.printf("%tF%n", millis);
System.out.printf("%tA, %1$tB %1$td, %1$tY%n", millis);
}
</syntaxhighlight>
<pre>
2023-05-10
Wednesday, May 10, 2023
</pre>
<br />
An alternate demonstration
<syntaxhighlight lang="java">
import java.util.Calendar;
Line 2,300 ⟶ 2,314:
 
=={{header|langur}}==
{{works with|langur|0.10.1}}
<syntaxhighlight lang="langur">var .now = dt//
var .format1 = "2006-01-02"
var .format2 = "Monday, January 2, 2006"
writeln $"\.now:dt. format1;"
writeln $"\.now:dt. format2;"</syntaxhighlight>
 
{{works with|langur|0.9.3}}
<syntaxhighlight lang="langur">var .now = dt//
writeln $"\.now:dt(2006-01-02);"
writeln $"\.now:dt(Monday, January 2, 2006);"</syntaxhighlight>
 
<syntaxhighlight lang="langur">writeln string dt//, "2006-01-02"
{{works with|langur|0.9}}
<syntaxhighlight lang="langur">writeln toStringstring dt//, "Monday, January 2, 2006-01-02"</syntaxhighlight>
writeln toString dt//, "Monday, January 2, 2006"</syntaxhighlight>
 
{{out}}
Line 2,428 ⟶ 2,439:
2019-04-02
Tuesday, April 02, 2019
</pre>
 
=={{header|MiniScript}}==
<syntaxhighlight lang="miniscript">import "dateTime"
 
print dateTime.now("yyyy-MM-dd")
print dateTime.now("dddd, MMMM d, yyyy")</syntaxhighlight>
 
{{out}}
<pre>2023-12-28
Thursday, December 28, 2023
</pre>
 
Line 3,200 ⟶ 3,222:
2020-07-19
Sunday, July 19, 2020
</pre>
 
=={{header|RPL}}==
RPL can return the date as a floating point number (format dd.mmyyyy) and can convert it (along with the time) as a string (format "DAY dd.mm.yy hh.mm.ss")
To solve the task, some formatting is then needed.
{{works with|HP|48}}
≪ DATE DUP 1000000 * 10000 MOD "-" +
OVER FP 100 * IP + "-" +
SWAP IP +
≫ '<span style="color:blue">DTSHORT</span>' STO
≪ { "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Saturday" "Sunday" }
{ "MON" "TUE" "WED" "THU" "FRI" "SAT" "SUN" }
DATE TIME TSTR 1 3 SUB POS GET ", " +
{ "January" "February" "March" "April" "May" "June" "July" "August" "September" "October" "November" "December"}
DATE FP 100 * IP GET + " " +
OVER IP + ", " +
DATE 1000000 * 10000 MOD +
≫ '<span style="color:blue">DTLONG</span>' STO
{{out}}
<pre>
2: "2023-8-17"
1: "Thursday, August 17, 2023"
</pre>
 
Line 3,238 ⟶ 3,283:
 
=={{header|Scala}}==
<syntaxhighlight lang="scala">val now=new Date()
import java.util.Date
 
val now=new Date()
println("%tF".format(now))
println("%1$tA, %1$tB %1$td, %1$tY".format(now))</syntaxhighlight>
 
{{out}}
<pre>
2023-04-17
Monday, April 17, 2023
</pre>
 
=={{header|Scheme}}==
Line 3,325 ⟶ 3,379:
Donnerstag, Dezember 17, 2020
Vendredi, Décembre 17, 2020</pre>
 
=={{header|SparForte}}==
As a structured script. Does not use l10n package.
<syntaxhighlight lang="ada">#!/usr/local/bin/spar
pragma annotate( summary, "dateformat")
@( description, "Display the current date in the formats of '2007-11-10' " )
@( description, "and 'Sunday, November 10, 2007'." )
@( see_also, "http://rosettacode.org/wiki/Date_format" )
@( "Ken O. Burtch" );
pragma license( unrestricted );
 
pragma restriction( no_external_commands );
 
procedure dateformat is
function Month_Image (Month : calendar.month_number) return string is
begin
case Month is
when 1 => return "January";
when 2 => return "February";
when 3 => return "March";
when 4 => return "April";
when 5 => return "May";
when 6 => return "June";
when 7 => return "July";
when 8 => return "August";
when 9 => return "September";
when 10 => return "October";
when 11 => return "November";
when others => return "December";
end case;
end Month_Image;
function Day_Image (Day : integer) return string is
begin
case Day is
when 0 => return "Monday";
when 1 => return "Tuesday";
when 2 => return "Wednesday";
when 3 => return "Thursday";
when 4 => return "Friday";
when 5 => return "Saturday";
when others => return "Sunday";
end case;
end Day_Image;
Today : constant calendar.time := calendar.clock;
begin
--put_line(
--Put_Line (Image (Today) (1..10));
 
put( calendar.year( Today ), "9999" ) @( "-" )
@( calendar.month( Today ), "99" ) @( "-" )
@( calendar.day( Today ), "99" );
new_line;
 
put_line(
Day_Image( calendar.day_of_week( Today ) ) & ", " &
Month_Image( calendar.month( Today ) ) &
strings.image( calendar.day( Today ) ) & "," &
strings.image( calendar.year( Today ) ) );
end dateformat;</syntaxhighlight>
 
=={{header|SQL}}==
Line 3,607 ⟶ 3,720:
<syntaxhighlight lang="vedit">RI(1) IT(", ") RI(2) IT(" ") NI(#1, LEFT+NOCR) IT(",") NI(#3)</syntaxhighlight>
 
=={{header|VlangVim Script}}==
See `:help strftime` - this function uses the C strftime() arguments' format.
<syntaxhighlight lang="vim">
echo strftime("%Y-%m-%d")
echo strftime("%A, %B %d, %Y")
</syntaxhighlight>
 
=={{header|V (Vlang)}}==
 
<syntaxhighlight lang="v (vlang)">import time
 
fn main() {
Line 3,624 ⟶ 3,744:
{{libheader|Wren-date}}
Unless it is embedded in a host application, Wren currently has no direct way to obtain the current date. We therefore assume this is passed in by the user as a command line parameter.
<syntaxhighlight lang="ecmascriptwren">import "os" for Process
import "./date" for Date
 
var args = Process.arguments
885

edits