内蔵時計の取得と表示とか。


RGKT-NDS-STDY-024(001)


取得、表示に関してはC言語標準ライブラリと同じに取得できます。
逆に変更とかになるとARM7コードを書かなくてはいけない?<未確認


SSはエミュですが実機でないと正しい動作を確認できませんので注意です。<エミュの完成度の問題

/*---------------------------------------------------------------------------------
	
	RTC Check program.
	
	Mar 30, 2009
	CODING BY. AYUMI @REGEKATSU
	This program was made from devkitPro Version 1-4-10.
	
	レトロゲーム活用研究同好会 (レゲ活)
	 - Console/Homebrew Programming -
	
	REGEKATSU
	-Console/Homebrew Programming-
	
	this web site.
	http://akiba.geocities.jp/consolehomebrewprogramming/

---------------------------------------------------------------------------------*/
#include <nds.h>
#include <stdio.h>
#include <time.h>

time_t unix_time;
struct tm* st_time;

//struct tm{
//	int tm_sec;     // 秒 (0〜59)
//	int tm_min;     // 分 (0〜59)
//	int tm_hour;    // 時 (0〜23)
//	int tm_mday;    // 日 (1〜31)
//	int tm_mon;     // 月 (0〜11)
//	int tm_year;    // 年 (年 - 1900)
//	int tm_wday;    // 週 (0〜6 : 日曜日〜土曜日)
//	int tm_yday;    // 年内の経過日数 (0〜365)
//	int tm_isdst;   // 夏時間 : 0以外の値
//};

void getRtc(void);
void drawRtc(void);

void getRtc(void)
{
	unix_time = time(NULL);
	st_time = gmtime((const time_t *)&unix_time);
}

void drawRtc(void)
{
	iprintf("\x1b[0;0H%2i:%02i:%02i", st_time->tm_hour, st_time->tm_min, st_time->tm_sec);
	iprintf("\nSeireki %i/%02i/%02i", st_time->tm_year + 1900, st_time->tm_mon + 1, st_time->tm_mday);
	iprintf("\nShowa   %i/%02i/%02i", st_time->tm_year + 1900 - 1925, st_time->tm_mon + 1, st_time->tm_mday);
	iprintf("\nHeisei  %i/%02i/%02i", st_time->tm_year + 1900 - 1988, st_time->tm_mon + 1, st_time->tm_mday);
}

int main(void)
{
	consoleDemoInit();
	getRtc();
	
	while(1) {
		drawRtc();
		
		swiWaitForVBlank();
		break;
	}

	return 0;
}
//---------------------------------------------------------------------------------