nlib
misc/datetime/datetime.cpp

This sample demonstrates the use of nn::nlib::DateTime to calculate and display the date and time.

The rich feature set of the DateTime class provides a simple way to calculate and display the date and time.

/*--------------------------------------------------------------------------------*
Project: CrossRoad
Copyright (C)Nintendo All rights reserved.
These coded instructions, statements, and computer programs contain proprietary
information of Nintendo and/or its licensed developers and are protected by
national and international copyright laws. They may not be disclosed to third
parties or copied or duplicated in any form, in whole or in part, without the
prior written consent of Nintendo.
The content herein is highly confidential and should be handled accordingly.
*--------------------------------------------------------------------------------*/
bool SampleDateTime() {
char buf[32];
DateTime now;
DateTime::GetNow(&now);
// prints RFC2822 string
now.ToRfc2822(buf);
nlib_printf("Now is '%s' (in RFC2822)\n", buf);
// prints W3C-DTF string
now.ToW3cDtf(buf);
nlib_printf("Now is '%s' (in W3CDTF)\n", buf);
// calculates the day number of the year
int nth;
now.GetDayOfYear(&nth);
nlib_printf("Now is %dth day of this year\n", nth);
// you can add years/months/days to a DateTime object.
DateTime tmp = now;
e = tmp.AddDays(1000);
if (nlib_is_error(e)) return false;
tmp.ToRfc2822(buf);
nlib_printf("1000 days after now is '%s'\n", buf);
tmp = now;
e = tmp.AddDays(-1000);
if (nlib_is_error(e)) return false;
tmp.ToRfc2822(buf);
nlib_printf("1000 days before now is '%s'\n", buf);
// you can parse a RFC2822/W3C-DTF string
DateTime dt;
TimeSpan delta;
e = DateTime::Parse("2000-01-01", &dt, &delta);
if (nlib_is_error(e)) return false;
// you can calculate the duration between two DateTimes
TimeSpan span = now - dt;
int days, seconds;
span.Get(&days, &seconds, NULL, NULL);
nlib_printf("Now is %d days and %d seconds from 2000/01/01\n", days, seconds);
return true;
}
bool SampleMain(int, char**) { return SampleDateTime(); }
NLIB_MAINFUNC