曆 (用品)

维基百科,自由的百科全书
(重定向自日历
跳转至: 导航搜索

是一種日常使用的出版物,用於記載時間。每頁顯示一日的叫日曆,每頁顯示一個月的叫月曆,每頁顯示全年的叫年曆。有多種形式,如掛曆座檯曆年曆卡等,近年又有電子日曆

月曆常會配以圖像作為裝飾,月份牌就是月曆的其中一種裝飾畫。

日曆[编辑]

基本格式
  • 公历年份台湾日历有中華民國紀元年份。一般均列於上方。
  • 月份。
  • 以大字顯示當日日期。通常非假日的星期一至五用黑/藍色字,星期六昔日使用綠色,實施週休二日後改為紅色,週日一律為紅色。
  • 星期。
  • 農曆日期。
  • 當日的節氣、運程等預測。
選項
  • 節日名稱。(當日以紅色印刷,昔日國定假日還會印上國旗)
  • 商店名稱。(列印贈送商家名稱、地址、電話於下方。)
  • 有些星期六、日會印成一張。

月曆[编辑]

  • 一體式月曆,為每月一幅,分別有十二張年畫,日期顯示於下方。
  • 二體式月曆,上方通常為一個「福」字,下方為日期,並以小字顯示上、下月日期。

年曆[编辑]

年曆將十二個月的日期顯示於一版之上,其他訊息相對較少。

電子月曆程式代碼[编辑]

此代碼用C++來實現

#include <iostream>
#include <iomanip>
using namespace std;
struct MonthData {
	string name;
	int date;
	MonthData(char* n = "", int d = 0) {
		name = n;
		date = d;
	}
};

#define ShowLanguage 0 //0是英文 1是中文
#if ShowLanguage == 0
MonthData monthdata[] = { //
		MonthData("January", 31), //
		MonthData("February", 28), //
		MonthData("March", 31), //
		MonthData("April", 30), //
		MonthData("May", 31), //
		MonthData("June", 30), //
		MonthData("July", 31), //
		MonthData("August", 31), //
		MonthData("September", 30), //
		MonthData("October", 31), //
		MonthData("November", 30), //
		MonthData("December", 31) };
string dayname[] = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
string eys = "Enter a year:";
string ems = "Enter a month:";
#elif ShowLanguage == 1
MonthData monthdata[] = { //
	MonthData("一月", 31),//
	MonthData("二月", 28),//
	MonthData("三月", 31),//
	MonthData("四月", 30),//
	MonthData("五月", 31),//
	MonthData("六月", 30),//
	MonthData("七月", 31),//
	MonthData("八月", 31),//
	MonthData("九月", 30),//
	MonthData("十月", 31),//
	MonthData("十一月", 30),//
	MonthData("十二月", 31)};
string dayname[] = {"日", "一", "二", "三", "四", "五", "六"};
string eys = "輸入年分:";
string ems = "輸入月份:";
#endif

int yeardate(int month, int day = 0) {
	return month >= 2 ? yeardate(month - 1, day + monthdata[month - 2].date) : day;
}

int leapday(int year) {
	return year / 4 - year / 100 + year / 400 - year / 4000;
}

int month1stday(int year, int month) {
	return (year + leapday(year - (month < 3)) + yeardate(month)) % 7;
}

int main() {
	int year, month;
	do {
		cout << eys << flush;
		cin >> year;
	} while (year < 1);
	do {
		cout << ems << flush;
		cin >> month;
	} while (month < 1 || month > 12);

	cout << setw(4) << year << ' ' << monthdata[month - 1].name << endl;

	int day;
	for (day = 0; day < 7; cout << (++day < 7 ? ' ' : '\n'))
		cout << setw(3) << dayname[day];

	int firstday = month1stday(year, month);
	for (day = 0; day < firstday; day++)
		cout << "    ";

	int date;
	for (date = 1, day--; date <= monthdata[month - 1].date; date++, day = (day + 1) % 7, cout << (day + 1 < 7 ? ' ' : '\n'))
		cout << setw(3) << date;
	if (((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) && month == 2)
		cout << " 29 ";
	cout << endl;

	system("pause");
	return 0;
}

參見[编辑]