insert_holidays.c

祝日を代入するプログラム [詳細]

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "holiday_lists.h"
#include "number_set.h"

関数

void Jan_holiday (int year, char holiday_name[HOLY_MAX][HOLY_NAME], int *m_holidays, int holiday_num[HOLY_MAX])
void Jan_holiday_1989 (int year, char holiday_name[HOLY_MAX][HOLY_NAME], int *m_holidays, int holiday_num[HOLY_MAX])
void Feb_holiday (int year, char holiday_name[HOLY_MAX][HOLY_NAME], int *m_holidays, int holiday_num[HOLY_MAX])
void Mar_holiday (int year, char holiday_name[HOLY_MAX][HOLY_NAME], int *m_holidays, int holiday_num[HOLY_MAX])
void Api_holiday (int year, char holiday_name[HOLY_MAX][HOLY_NAME], int *m_holidays, int holiday_num[HOLY_MAX])
void May_holiday (int year, char holiday_name[HOLY_MAX][HOLY_NAME], int *m_holidays, int holiday_num[HOLY_MAX])
void Jul_holiday (int year, char holiday_name[HOLY_MAX][HOLY_NAME], int *m_holidays, int holiday_num[HOLY_MAX])
void Sep_holiday (int year, char holiday_name[HOLY_MAX][HOLY_NAME], int *m_holidays, int holiday_num[HOLY_MAX])
void Oct_holiday (int year, char holiday_name[HOLY_MAX][HOLY_NAME], int *m_holidays, int holiday_num[HOLY_MAX])
void Nov_holiday (int year, char holiday_name[HOLY_MAX][HOLY_NAME], int *m_holidays, int holiday_num[HOLY_MAX])
void Dec_holiday (int year, char holiday_name[HOLY_MAX][HOLY_NAME], int *m_holidays, int holiday_num[HOLY_MAX])
void input_holiday (char holiday_name[HOLY_MAX][HOLY_NAME], int *m_holidays, int holiday_num[HOLY_MAX], char holiday_list[HOLY_MAX], int days, int week_val)
int year_check_vapoint (int year)
int judge_month (int year, int month, char holiday_name[HOLY_MAX][HOLY_NAME], int holiday_num[HOLY_MAX])
int judge_month_1989 (int year, int month, char holiday_name[HOLY_MAX][HOLY_NAME], int holiday_num[HOLY_MAX])
int vernal_autumnal (double points, int va_year, int year)

説明

祝日を代入するプログラム

作者:
y_okamon
バージョン:
1.0(2007.04.25) 初版
1.1(2008.10.09)
祝日にも色を付けるための仕様変更
(1)各関数、日付を入れる整数型配列を仮引数に設定
(2)関数XXX_holiday内の処理、祝日名、祝日日付、日数更新処理について
(2.1) 関数input_holidayを新に設定し、祝日名と祝日日付と日数の更新を行う
(2.2) (2.1)から関数XXX_holidayの行数を削減
2.0(2011.06.29)
1948年から施行された祝日法に基づき、1949年から2150年までの祝日に対応

関数

void Api_holiday ( int  year,
char  holiday_name[HOLY_MAX][HOLY_NAME],
int *  m_holidays,
int  holiday_num[HOLY_MAX] 
)

機能
4月29日の祝日名(天皇誕生日(1988年まで)、みどりの日(1989年から2006年まで), 昭和の日(2007年以降))を配列に代入する
29日が日曜なら30日が振替休日となる

引数:
year 
holiday_name[][] 祝日名代入用配列
*m_holidays 月単位の祝日
holiday_num[] 日付代入用配列(Ver1.1)

被参照自作関数
ファイルinsert_holidays.c内 関数judge_month

参照自作関数
ファイルcalendar_main.c内 関数day_of_week
ファイルinsert_holidays.c内 関数input_holiday

void Dec_holiday ( int  year,
char  holiday_name[HOLY_MAX][HOLY_NAME],
int *  m_holidays,
int  holiday_num[HOLY_MAX] 
)

機能
天皇誕生日(12月23日)を配列に代入する
天皇誕生日が日曜の場合は24日が振替休日となる

引数:
year 
holiday_name[][] 祝日名代入用関数
*m_holidays 月単位の祝日日数
holiday_num[] 日付代入配列(Ver1.1)

被参照自作関数
ファイルinsert_holidays.c内 関数judge_month

参照自作関数
ファイルinsert_holidays.c内 関数input_holiday
ファイルcalendar_main.c内 関数day_of_week

void Feb_holiday ( int  year,
char  holiday_name[HOLY_MAX][HOLY_NAME],
int *  m_holidays,
int  holiday_num[HOLY_MAX] 
)

関数名
2月祝日関数

機能
建国記念日(2月11日)を祝日代入配列に代入する
建国記念日が日曜のときは12日が振替休日となる

引数:
year 
holiday_name[][] 祝日名入用配列
*m_holidays 月単位の祝日日数
holiday_num[] 日付代入用配列(Ver1.1)

被参照自作関数
ファイルinsert_holidays.c内 関数judge_month

参照自作関数
ファイルinsert_holidays.c内 関数input_holiday
ファイルcalendar_main.c内 関数day_of_week

void input_holiday ( char  holiday_name[HOLY_MAX][HOLY_NAME],
int *  m_holidays,
int  holiday_num[HOLY_MAX],
char  holiday_list[HOLY_MAX],
int  days,
int  week_val 
)

機能
祝日を入れる

引数:
holiday_name[][] 祝日代入用関数
*m_holidays 月単位の祝日日数
holiday_num[] 日付代入配列
holiday_list[] ヘッダファイルにある祝日名
days 日付
week_val 曜日値

被参照自作関数
ファイルinsert_holidays.c内 関数Jan_holiday
ファイルinsert_holidays.c内 関数Jan_holiday_1989
ファイルinsert_holidays.c内 関数Feb_holiday
ファイルinsert_holidays.c内 関数Mar_holiday
ファイルinsert_holidays.c内 関数Api_holiday
ファイルinsert_holidays.c内 関数May_holiday
ファイルinsert_holidays.c内 関数Jul_holiday
ファイルinsert_holidays.c内 関数Sep_holiday
ファイルinsert_holidays.c内 関数Oct_holiday
ファイルinsert_holidays.c内 関数Nov_holiday
ファイルinsert_holidays.c内 関数Dec_holiday

参照自作関数
なし

void Jan_holiday ( int  year,
char  holiday_name[HOLY_MAX][HOLY_NAME],
int *  m_holidays,
int  holiday_num[HOLY_MAX] 
)

機能
元旦(1月1日)と成人の日(1月第2月曜日)を配列に代入する
元旦が日曜の場合は2日が振替休日となる

引数:
year 
holiday_name[][] 祝日名入用配列
*m_holidays 月単位の祝日日数
holiday_num[] 日付代入用配列(Ver1.1)

被参照自作関数
ファイルinsert_holidays.c内 関数judge_month

参照自作関数
ファイルcalendar_main.c内 関数day_of_week
ファイルinsert_holidays.c内 関数input_holiday

void Jan_holiday_1989 ( int  year,
char  holiday_name[HOLY_MAX][HOLY_NAME],
int *  m_holidays,
int  holiday_num[HOLY_MAX] 
)

機能
1989年のカレンダーを
元旦が日曜の場合は2日が振替休日となる

引数:
year 
holiday_name[][] 祝日名入用配列
*m_holidays 月単位の祝日日数
holiday_num[] 日付代入用配列(Ver1.1)

被参照自作関数
ファイルinsert_holidays.c内 関数judge_month_1989

参照自作関数
ファイルinsert_holidays.c内 関数input_holiday

int judge_month ( int  year,
int  month,
char  holiday_name[HOLY_MAX][HOLY_NAME],
int  holiday_num[HOLY_MAX] 
)

機能
入力された月による祝日有無を判定する

引数:
year 
month 
holiday_name[][] 祝日名代入する配列
holiday_num[][] 祝日日付代入配列(Ver1.1)
戻り値:
m_holidays 月ごとの祝日日数を返す

被参照自作関数
ファイルcalendar_main.c内 関数make_calendar
ファイルoutput_calendar.c内 関数month_print_calendar
ファイルoutput_calendar.c内 関数month_print_calendar_today

参照自作関数
ファイルinsert_holidays.c内 関数Jan_holiday
ファイルinsert_holidays.c内 関数Feb_holiday
ファイルinsert_holidays.c内 関数Mar_holiday
ファイルinsert_holidays.c内 関数Api_holiday
ファイルinsert_holidays.c内 関数May_holiday
ファイルinsert_holidays.c内 関数Jul_holiday
ファイルinsert_holidays.c内 関数Sep_holiday
ファイルinsert_holidays.c内 関数Oct_holiday
ファイルinsert_holidays.c内 関数Nov_holiday
ファイルinsert_holidays.c内 関数Dec_holiday

int judge_month_1989 ( int  year,
int  month,
char  holiday_name[HOLY_MAX][HOLY_NAME],
int  holiday_num[HOLY_MAX] 
)

機能
入力された月による祝日有無を判定する(平成元年1月~3月)

引数:
year 
month 
holiday_name[][] 祝日名代入する配列
holiday_num[][] 祝日日付代入配列(Ver1.1)
戻り値:
m_holidays 月ごとの祝日日数を返す

被参照自作関数
ファイルcalendar_main.c内 関数make_calendar_1989

参照自作関数
ファイルinsert_holidays.c内 関数Jan_holiday_1989
ファイルinsert_holidays.c内 関数Feb_holiday
ファイルinsert_holidays.c内 関数Mar_holiday

void Jul_holiday ( int  year,
char  holiday_name[HOLY_MAX][HOLY_NAME],
int *  m_holidays,
int  holiday_num[HOLY_MAX] 
)

機能
海の日を代入する
2002年までは海の日が日曜なら21日が振替休日となる

引数:
year 
holiday_name[][] 祝日名代入配列
*m_holidays 月単位の祝日日数
holiday_num[] 日付代入配列(Ver1.1)

被参照自作関数
ファイルinsert_holidays.c内 関数judge_month

参照自作関数
ファイルinsert_holidays.c内 関数input_holiday
ファイルcalendar_main.c内 関数day_of_week

void Mar_holiday ( int  year,
char  holiday_name[HOLY_MAX][HOLY_NAME],
int *  m_holidays,
int  holiday_num[HOLY_MAX] 
)

機能
春分日(3月20日前後)を祝日代入関数に代入する
春分日が日曜のときは翌日が振替休日となる

引数:
year 
holiday_name[][] 祝日名代入配列
*m_holidays 月単位の祝日日数
holiday_num[] 日付代入用配列(Ver1.1)

被参照自作関数
ファイルinsert_holidays.c内 関数judge_month
ファイルinsert_holidays.c内 関数judge_month_1989
ファイルcalendar_main.c内 関数day_of_week

参照自作関数
ファイルinsert_holidays.c内 関数vernal_autumnal
ファイルcalendar_main.c内 関数day_of_week

void May_holiday ( int  year,
char  holiday_name[HOLY_MAX][HOLY_NAME],
int *  m_holidays,
int  holiday_num[HOLY_MAX] 
)

機能
憲法記念日(5月3日),みどりの日(2007年以降の5月4日), こどもの日(5月5日)を祝日代入配列に代入する
こどもの日(2006年まで)/三日間のうちのどちらかが日曜の場合、6日が振替休日となる

引数:
year 
holiday_name[][] 祝日名代入関数
*m_holidays 月単位の祝日日数
holiday_num[] 日付代入配列(Ver1.1)

被参照自作関数
ファイルinsert_holidays.c内 関数judge_month

参照自作関数
ファイルcalendar_main.c内 関数day_of_week
ファイルinsert_holidays.c内 関数input_holiday

void Nov_holiday ( int  year,
char  holiday_name[HOLY_MAX][HOLY_NAME],
int *  m_holidays,
int  holiday_num[HOLY_MAX] 
)

機能
文化の日(11月3日)と勤労感謝の日(11月23日)を配列に代入する
文化の日、勤労感謝の日が日曜の場合は翌日は振替休日となる

引数:
year 
holiday_name[][] 祝日名代入用配列
*m_holidays 月単位の祝日日数
holiday_num[] 日付代入配列(Ver1.1)

被参照自作関数
ファイルinsert_holidays.c内 関数judge_month

参照自作関数
ファイルinsert_holidays.c内 関数input_holiday
ファイルcalendar_main.c内 関数day_of_week

void Oct_holiday ( int  year,
char  holiday_name[HOLY_MAX][HOLY_NAME],
int *  m_holidays,
int  holiday_num[HOLY_MAX] 
)

機能
体育の日を配列に代入する

引数:
year 
holiday_name[][] 祝日名代入配列
*m_holidays 月単位の祝日日数
holiday_num[] 祝日日付代入配列(Ver1.1)

被参照自作関数
ファイルinsert_holidays.c内 関数judge_month

参照自作関数
ファイルcalendar_main.c内 関数day_of_week
ファイルinsert_holidays.c内 関数input_holiday

void Sep_holiday ( int  year,
char  holiday_name[HOLY_MAX][HOLY_NAME],
int *  m_holidays,
int  holiday_num[HOLY_MAX] 
)

機能
敬老の日と秋分の日を配列に代入する
敬老の日(2002年まで)、秋分の日が日曜なら翌日は振替休日となる

引数:
year 
holiday_name[][] 祝日名代入用配列
*m_holidays 月単位の祝日日数
holiday_num[] 日付代入配列(Ver1.1)

被参照自作関数
ファイルinsert_holidays.c内 関数judge_month

参照自作関数
ファイルinsert_holidays.c内 関数vernal_autumnal
ファイルinsert_holidays.c内 関数input_holiday
ファイルcalendar_main.c内 関数day_of_week

int vernal_autumnal ( double  points,
int  va_year,
int  year 
)

機能
春分日と秋分日を計算で算出する

引数:
points 春分日、秋分日の通過平均日
va_year 春分、秋分日の基準年
year 対象年
戻り値:
va_days 春分日、秋分日

被参照自作関数
ファイルinsert_holidays.c内 関数Mar_holiday
ファイルinsert_holidays.c内 関数Sep_holiday

参照自作関数
なし

int year_check_vapoint ( int  year  ) 

機能
入力された年から利用すべき春分/秋分点を決定する

引数:
year 

被参照自作関数
ファイルinsert_holidays.c内 関数Mar_holiday
ファイルinsert_holidays.c内 関数Sep_holiday

参照自作関数
なし


13 Aug 2011に生成されました。  doxygen 1.6.1