読者です 読者をやめる 読者になる 読者になる

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


去年書いたやつをちょっとだけ手直し。アーカイブして公開しました。
付属のやつは 3D のポリゴン時計とか、個人的には余計な演出が含まれてると感じたので
こっちのはもっとシンプルに。


Nitro Developer Style
http://page.freett.com/ntr/


サンプルなのでベタ書きです。
関数化するならちゃんと tm 構造体を値かポインタかで引数や返値とすると良いでしょう。


simple RTC example.


main.c

/*---------------------------------------------------------------------------------
	
	simple RTC example.
	
	version 0.01
	Jan 30, 2010
	
	By. REGEKATSU
	
---------------------------------------------------------------------------------*/

#include <stdio.h>
#include <time.h>
#include <nds/interrupts.h>
#include <nds/arm9/console.h>


//---------------------------------------------------------------------------------
int main(void){
//---------------------------------------------------------------------------------
	
	time_t unix_time;
	struct tm* tm;
	
	/*
	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以外の値
	};
	*/
	
	
	//initConsole
	consoleDemoInit();
	
	//drawTitle
	printf("simple RTC sample.\n\nversion 0.01\nJan 30, 2010\n\nBy. REGEKATSU\n\n\n");
	
	while(1) {
		
		swiWaitForVBlank();
		
		//getRTC
		unix_time = time(NULL);
		tm = gmtime((const time_t *)&unix_time);
		
		//drawRTC
		printf("\x1b[8;0H");
		printf("Time   %2i:%02i:%02i\n\n", tm->tm_hour, tm->tm_min, tm->tm_sec);
		printf("Year   %4i/%02i/%02i\n", tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday);
		printf("Showa  %4i/%02i/%02i\n", tm->tm_year + 1900 - 1925, tm->tm_mon + 1, tm->tm_mday);
		printf("Heisei %4i/%02i/%02i\n", tm->tm_year + 1900 - 1988, tm->tm_mon + 1, tm->tm_mday);
		
	}
	
}

//---------------------------------------------------------------------------------