Date format: Difference between revisions
Content added Content deleted
(D code : corrected version, again :P) |
m (D code : use more intuitive codes) |
||
Line 45: | Line 45: | ||
import tango.time.Time ; |
import tango.time.Time ; |
||
import tango.text.locale. |
import tango.text.locale.Locale ; |
||
import tango.time.chrono.Gregorian ; |
import tango.time.chrono.Gregorian ; |
||
Line 51: | Line 51: | ||
void main() { |
void main() { |
||
char[256] outbuf ; |
|||
Gregorian g = new Gregorian ; |
Gregorian g = new Gregorian ; |
||
auto layout = new Locale; |
|||
Time d = g.toTime(2007, 11, 10, 0, 0, 0, 0, g.AD_ERA) ; |
Time d = g.toTime(2007, 11, 10, 0, 0, 0, 0, g.AD_ERA) ; |
||
Stdout( |
Stdout(layout("{:yyy-MM-dd}", d)).newline ; |
||
Stdout( |
Stdout(layout("{:dddd, MMMM d, yyy}", d)).newline ; |
||
d = g.toTime(2008, 2, 1, 0, 0, 0, 0, g.AD_ERA) ; |
|||
Stdout(layout("{:dddd, MMMM d, yyy}", d)).newline ; |
|||
}</pre> |
}</pre> |
||
Sample Output: |
Sample Output: |
||
<pre>2007-11-10 |
<pre>2007-11-10 |
||
Saturday, November 10, 2007 |
Saturday, November 10, 2007 |
||
Friday, February 1, 2008</pre> |
|||
=={{header|Forth}}== |
=={{header|Forth}}== |
Revision as of 09:38, 9 February 2008
Date format
You are encouraged to solve this task according to the task description, using any language you may know.
You are encouraged to solve this task according to the task description, using any language you may know.
Display a given date in the formats of "2007-11-10" and "Sunday, November 10, 2007".
Ada
with Ada.Calendar; use Ada.Calendar; with Ada.Calendar.Arithmetic; use Ada.Calendar.Arithmetic; with Ada.Strings.Unbounded; use Ada.Strings.Unbounded; with Ada.Text_Io; use Ada.Text_IO; procedure Date_Format is type Month_Names is array(Month_Number) of Unbounded_String; Months : constant Month_Names := ( To_Unbounded_String("January"), To_Unbounded_String("February"), To_Unbounded_String("March"), To_Unbounded_String("April"), To_Unbounded_String("May"), To_Unbounded_String("June"), To_Unbounded_String("July"), To_Unbounded_String("August"), To_Unbounded_String("September"), To_Unbounded_String("October"), To_Unbounded_String("November"), To_Unbounded_String("December")); The_Day : Time; Increment : constant Day_Count := 1; begin The_Day := Clock; Put_Line("Today is: " & To_String(Months(Month(The_Day))) & Day_Number'Image(Day(The_Day)) & "," & Year_Number'Image(Year(The_Day))); The_Day := The_Day + Increment; Put_Line("Tomorrow is: " & To_String(Months(Month(The_Day))) & Day_Number'Image(Day(The_Day)) & "," & Year_Number'Image(Year(The_Day))); end Date_Format;
D
Compiler: DMD version 1.026
Library: Tango 0.99.5
module datetimedemo ; import tango.time.Time ; import tango.text.locale.Locale ; import tango.time.chrono.Gregorian ; import tango.io.Stdout ; void main() { Gregorian g = new Gregorian ; auto layout = new Locale; Time d = g.toTime(2007, 11, 10, 0, 0, 0, 0, g.AD_ERA) ; Stdout(layout("{:yyy-MM-dd}", d)).newline ; Stdout(layout("{:dddd, MMMM d, yyy}", d)).newline ; d = g.toTime(2008, 2, 1, 0, 0, 0, 0, g.AD_ERA) ; Stdout(layout("{:dddd, MMMM d, yyy}", d)).newline ; }
Sample Output:
2007-11-10 Saturday, November 10, 2007 Friday, February 1, 2008
Forth
: str-table create ( n -- ) 0 do , loop does> ( n -- str len ) swap cells + @ count ; here ," December" here ," November" here ," October" here ," September" here ," August" here ," July" here ," June" here ," May" here ," April" here ," March" here ," February" here ," January" 12 str-table months : .long-date time&date ( s m h D M Y ) >R 1- months type space 1 .r [char] , emit space R> . drop drop drop ;
: .- [char] - emit ; : .short-date time&date 1 .r .- 1 .r .- 1 .r drop drop drop ;
Perl
use POSIX; print POSIX::strftime('%Y-%m-%d', localtime), "\n"; print POSIX::strftime('%A, %B %d, %Y', localtime), "\n";
Python
Formatting rules: http://docs.python.org/lib/module-time.html (strftime)
import datetime today = datetime.date.today() # This one is built in: print today.isoformat() # Or use a format string for full flexibility: print today.strftime('%A, %B %d, %Y')
Raven
time int as today
Short form:
today '%Y-%m-%d' date
Long form:
today '%A, %B %d, %Y' date