GadgetSeed  0.9.6
datetime.h
[詳解]
1 /** @file
2  @brief 日付時刻
3 
4  @date 2015.09.19
5  @date 2007.05.01
6  @author Takashi SHUDO
7 */
8 
9 #ifndef DATETIME_H
10 #define DATETIME_H
11 
12 #include "timer.h"
13 
14 #ifndef GSC_TIMEZONE_STR
15 #define GSC_TIMEZONE_STR "JST" ///< $gsc タイムゾーンを示す文字列
16 #endif
17 #ifndef GSC_DIFF_FROM_LOCAL_TIME_SEC
18 #define GSC_DIFF_FROM_LOCAL_TIME_SEC (9*60*60) ///< $gsc UTCと日本時間(+9時間)との時差(秒)
19 #endif
20 
21 typedef long long int t_time;
22 
23 #define DATE_STR_LEN ((unsigned int)sizeof("YYYY/MM/DD WWW"))
24 #define TIME_STR_LEN ((unsigned int)sizeof("HH/MM/SS"))
25 #define MSEC_STR_LEN ((unsigned int)sizeof(".mmm"))
26 #define DATETIME_STR_LEN (DATE_STR_LEN + 1 + TIME_STR_LEN)
27 #define DATEMTIME_STR_LEN (DATE_STR_LEN + 1 + TIME_STR_LEN + 1 + MSEC_STR_LEN)
28 
29 struct st_datetime {
30  short year; ///< 年
31  char month; ///< 月
32  char day; ///< 日
33  char dayofweek; ///< 曜日 0:日曜日〜6:土曜日
34  char hour; ///< 時
35  char min; ///< 分
36  char sec; ///< 秒
37  short msec; ///< ミリ秒
38 }; ///< 時刻構造体
39 
40 struct st_systime {
41  t_time sec; ///< 秒
42  int usec; ///< マイクロ秒(0〜999999)
43 }; ///< システム時間
44 
45 extern struct st_systime system_time;
46 extern struct st_systime l_system_time;
48 
49 extern int read_rtc_time(struct st_datetime *datetime);
50 extern void datetime_to_str(char *str, struct st_datetime *datetime);
51 extern void datemtime_to_str(char *str, struct st_datetime *datetime);
52 extern void date_to_str(char *str, struct st_datetime *datetime);
53 extern void mtime_to_str(char *str, struct st_datetime *datetime);
54 extern void time_to_str(char *str, struct st_datetime *datetime);
55 extern int set_rtc(struct st_datetime *datetime);
56 extern int init_time(char *devname);
57 extern char date_to_dayofweek(short year, char month, char day);
58 extern int is_leap_year(int year);
59 extern int num_of_day_in_month(int year, int month);
60 extern void unixtime_to_datetime(struct st_datetime *datetime, struct st_systime *unixtime);
61 extern void systime_to_datetime(struct st_datetime * datetime, struct st_systime *stime);
62 extern t_time datetime_to_utc(struct st_datetime * datetime);
63 extern void datetime_to_systime(struct st_systime *systime, struct st_datetime *time);
64 extern void set_systime(struct st_systime *systime);
65 extern t_time get_systime_sec(void);
66 extern unsigned int fattime(void);
67 extern void get_systime(struct st_systime *systime);
68 extern void register_sec_timer_func(timer_func func);
69 extern void sync_systime_from_rtc(void);
70 extern void adjust_systime(void);
71 extern void sync_rtc_from_systime(void);
72 
73 #endif // DATETIME_H
unsigned int fattime(void)
FAT 現在実時間を取得する
Definition: datetime.c:775
時刻構造体
Definition: datetime.h:29
struct st_systime system_time
Definition: datetime.c:129
short msec
ミリ秒
Definition: datetime.h:37
char hour
Definition: datetime.h:34
void register_sec_timer_func(timer_func func)
時刻秒更新に同期した1秒周期処理を登録する
Definition: datetime.c:820
システム時間
Definition: datetime.h:40
int usec
マイクロ秒(0〜999999)
Definition: datetime.h:42
int is_leap_year(int year)
うるう年か調べる
Definition: datetime.c:613
char min
Definition: datetime.h:35
char date_to_dayofweek(short year, char month, char day)
西暦年、月、日より曜日を求める
Definition: datetime.c:594
void datemtime_to_str(char *str, struct st_datetime *datetime)
時間を日付ミリ秒時間文字列に変換する
Definition: datetime.c:444
char month
Definition: datetime.h:31
int num_of_day_in_month(int year, int month)
うるう月か調べる
Definition: datetime.c:632
void datetime_to_str(char *str, struct st_datetime *datetime)
時間を日付時間文字列に変換する
Definition: datetime.c:431
カーネルタイマ
char sec
Definition: datetime.h:36
int init_time(char *devname)
時計を初期する
Definition: datetime.c:517
void date_to_str(char *str, struct st_datetime *datetime)
時間を日付文字列に変換する
Definition: datetime.c:390
t_time sec
Definition: datetime.h:41
void get_systime(struct st_systime *systime)
システム時間を取得する
Definition: datetime.c:802
void time_to_str(char *str, struct st_datetime *datetime)
時間を時間文字列に変換する
Definition: datetime.c:405
char day
Definition: datetime.h:32
void unixtime_to_datetime(struct st_datetime *datetime, struct st_systime *unixtime)
UNIX時間より時刻を求める
Definition: datetime.c:658
void systime_to_datetime(struct st_datetime *datetime, struct st_systime *stime)
システム時間よりローカル時刻を求める
Definition: datetime.c:684
timer_func sec_timer_func
1秒間隔処理関数
Definition: datetime.c:151
char dayofweek
曜日 0:日曜日〜6:土曜日
Definition: datetime.h:33
void set_systime(struct st_systime *systime)
UTC時刻からシステム時間を設定する
Definition: datetime.c:747
t_time datetime_to_utc(struct st_datetime *datetime)
ローカル西暦年月日、時間よりUTCを求める
Definition: datetime.c:704
void mtime_to_str(char *str, struct st_datetime *datetime)
時間をミリ秒時間文字列に変換する
Definition: datetime.c:419
void(* timer_func)(void *sp, unsigned long long systime)
カーネルタイマ周期処理関数の型
Definition: timer.h:19
void datetime_to_systime(struct st_systime *systime, struct st_datetime *time)
ローカル西暦年月日、時間よりシステム時間を求める
Definition: datetime.c:736
t_time get_systime_sec(void)
システム時間(秒)を取得する
Definition: datetime.c:765
short year
Definition: datetime.h:30