Calculate Your Own Sunrise, Transit, And Sunset Times
【摘要】
提供計算日出、日中、日落時間的程式,並說明使用方法。
【前言】
▪此處提供計算各地日出、日中、日落時間的程式。因本程式是依各地的座標來計算時刻,所以只要給予精確的經緯度,即使小地方的時刻也能算得出來,譬如某間學校、某地寺廟、某戶民宅等。
▪本程式可以計算的範圍是:
- 年份:公元 ±3000 年之間
- 經度:±180° 之間,東為正
- 緯度:±72° 之間,北為正
相信這個範圍應能滿足絕大部分人的需求。
▪如果不知道經緯度,可以用 Google 地圖、Bing 地圖或類似的網站。找到目標地點後,將鼠標移至該處,Google 地圖是按左鍵,Bing 地圖是按右鍵,出現的方框中就有緯度和經度。
【附錄】有台灣各縣市政府所在地的經緯度供大家參考。
▪本程式是在 Debian GNU/Linux 10 作業系統上,用 Apple 的 Swift 語言撰寫、編譯而成。一次輸出一整年的數據,秒數僅供參考。
▪程式的使用方法:所提供的程式都是指令行程式,沒有圖形界面;請在程式所在的目錄開啟虛擬終端機(終端機模擬器),輸入檔名,直接執行。輸出檔也會在同一目錄。
提醒:可能要用等寬字型才能顯示整齊的內容。
【程式介紹】
共提供四個程式,每個程式一開始都會詢問所需年份、和目標地點的經緯度與時區。
- 年份請用公曆,正整數,如 2030
- 地點的經緯度請用浮點數,也就是從 Google 或 Bing 地圖複製來的數據
- 時區可用整數或浮點數,正數可以不加正號,如臺灣可用 8 或 +8.0,負數則必需有負號
提醒:中文習慣講「經緯度」,所以程式是先詢問「經度」,而 Google 或 Bing 地圖顯示的是「緯度」和「經度」,請不要輸入反了。
提醒:輸入值需合理,譬如輸入的經緯度是在台灣,時區應為 +8,若給其他值,甚至給負值,就會有錯。
▪solar-noon:輸出「日中」時間
md5: 145d36b30a545968234e9cddb75d0943
輸出檔名為:<年份>日中時刻_<經度>_<緯度>.txt;如:2020日中時刻_120.9_23.8.txt
檔案內容為一大表格,每月一縱欄,橫列是日。範例見下面【樣本】一節。
▪sunrise-time:輸出「日出」時間
md5: f6a0f1bca624880f3c2cf724dbd97fc7
輸出檔名為:<年份>日出時刻_<經度>_<緯度>.txt;如:2020日出時刻_120.9_23.8.txt
檔案內容為一大表格,每月一縱欄,橫列是日,類似日中時刻表。範例見下面【樣本】一節。
▪sunset-time:輸出「日落」時間
md5: 42722f067a1d97818b8e8f0d039d80fe
輸出檔名為:<年份>日落時刻_<經度>_<緯度>.txt;如:2020日落時刻_120.9_23.8.txt
檔案內容為一大表格,每月一縱欄,橫列是日,類似日中時刻表。範例見下面【樣本】一節。
▪sun-rise-noon-set:輸出「日出、日中、日落」時間
md5: fca52d057ec1dee25b234372797f4bc2
輸出檔名為:<年份>_<經度>_<緯度>.txt;如:2020_120.9_23.8.txt
檔案內容為一長表格,每日一橫列,列出日數、日期和三種時刻,少許範例如下:
公元2020年 經度=120.97388° 緯度=23.97565° 時區=8.0小時 日數 月/日 日出 日中 日落 001 01/01 06:38:42 11:59:02 17:19:21 002 01/02 06:39:01 11:59:30 17:19:59 003 01/03 06:39:18 11:59:58 17:20:38 004 01/04 06:39:34 12:00:26 17:21:18 005 01/05 06:39:49 12:00:53 17:21:58 006 01/06 06:40:02 12:01:20 17:22:38 007 01/07 06:40:14 12:01:47 17:23:19 008 01/08 06:40:25 12:02:13 17:24:01 009 01/09 06:40:34 12:02:39 17:24:43 010 01/10 06:40:42 12:03:04 17:25:25 下略
【樣本】公元2020年台灣地理中心日中時刻
公元2020年日中時刻 經度=120.97388° 緯度=23.97565° 時區=8.0小時 日\月 1 2 3 4 5 6 7 8 9 10 11 12 月/日 01 11:59:02 12:09:29 12:08:29 12:00:03 11:53:14 11:53:54 11:59:55 12:02:28 11:56:14 11:45:53 11:39:39 11:45:00 01 02 11:59:30 12:09:38 12:08:18 11:59:45 11:53:07 11:54:03 12:00:06 12:02:24 11:55:55 11:45:34 11:39:37 11:45:22 02 03 11:59:58 12:09:46 12:08:05 11:59:27 11:53:01 11:54:13 12:00:17 12:02:20 11:55:35 11:45:15 11:39:37 11:45:46 03 04 12:00:26 12:09:53 12:07:52 11:59:10 11:52:55 11:54:23 12:00:28 12:02:15 11:55:16 11:44:56 11:39:37 11:46:09 04 05 12:00:53 12:09:59 12:07:39 11:58:53 11:52:50 11:54:33 12:00:39 12:02:09 11:54:56 11:44:38 11:39:38 11:46:34 05 06 12:01:20 12:10:05 12:07:25 11:58:36 11:52:45 11:54:44 12:00:49 12:02:03 11:54:36 11:44:20 11:39:40 11:46:59 06 07 12:01:47 12:10:09 12:07:11 11:58:19 11:52:41 11:54:55 12:00:59 12:01:56 11:54:15 11:44:02 11:39:43 11:47:24 07 08 12:02:13 12:10:13 12:06:56 11:58:02 11:52:37 11:55:06 12:01:09 12:01:48 11:53:55 11:43:45 11:39:46 11:47:50 08 09 12:02:39 12:10:16 12:06:42 11:57:45 11:52:34 11:55:18 12:01:18 12:01:40 11:53:34 11:43:28 11:39:51 11:48:17 09 10 12:03:04 12:10:18 12:06:26 11:57:29 11:52:31 11:55:29 12:01:27 12:01:31 11:53:13 11:43:11 11:39:56 11:48:44 10 11 12:03:28 12:10:19 12:06:11 11:57:13 11:52:29 11:55:42 12:01:35 12:01:22 11:52:52 11:42:55 11:40:02 11:49:11 11 12 12:03:53 12:10:20 12:05:55 11:56:58 11:52:28 11:55:54 12:01:43 12:01:12 11:52:31 11:42:40 11:40:09 11:49:39 12 13 12:04:16 12:10:20 12:05:39 11:56:42 11:52:27 11:56:06 12:01:50 12:01:02 11:52:10 11:42:25 11:40:17 11:50:07 13 14 12:04:39 12:10:19 12:05:22 11:56:27 11:52:27 11:56:19 12:01:57 12:00:51 11:51:49 11:42:10 11:40:26 11:50:35 14 15 12:05:01 12:10:17 12:05:05 11:56:13 11:52:27 11:56:31 12:02:03 12:00:40 11:51:28 11:41:56 11:40:36 11:51:04 15 16 12:05:23 12:10:15 12:04:48 11:55:58 11:52:28 11:56:44 12:02:09 12:00:28 11:51:06 11:41:43 11:40:46 11:51:33 16 17 12:05:44 12:10:11 12:04:31 11:55:44 11:52:30 11:56:57 12:02:15 12:00:15 11:50:45 11:41:30 11:40:57 11:52:02 17 18 12:06:04 12:10:07 12:04:14 11:55:31 11:52:32 11:57:10 12:02:20 12:00:02 11:50:23 11:41:18 11:41:10 11:52:31 18 19 12:06:24 12:10:03 12:03:56 11:55:18 11:52:34 11:57:23 12:02:24 11:59:49 11:50:02 11:41:06 11:41:23 11:53:01 19 20 12:06:43 12:09:57 12:03:39 11:55:05 11:52:37 11:57:36 12:02:28 11:59:35 11:49:41 11:40:55 11:41:36 11:53:30 20 21 12:07:01 12:09:51 12:03:21 11:54:52 11:52:41 11:57:49 12:02:31 11:59:20 11:49:19 11:40:45 11:41:51 11:54:00 21 22 12:07:18 12:09:45 12:03:03 11:54:40 11:52:45 11:58:02 12:02:34 11:59:05 11:48:58 11:40:35 11:42:07 11:54:30 22 23 12:07:35 12:09:37 12:02:45 11:54:29 11:52:50 11:58:15 12:02:36 11:58:50 11:48:37 11:40:26 11:42:23 11:54:59 23 24 12:07:51 12:09:29 12:02:27 11:54:18 11:52:55 11:58:28 12:02:37 11:58:34 11:48:16 11:40:18 11:42:40 11:55:29 24 25 12:08:06 12:09:21 12:02:09 11:54:07 11:53:01 11:58:41 12:02:38 11:58:18 11:47:55 11:40:11 11:42:58 11:55:59 25 26 12:08:20 12:09:12 12:01:51 11:53:57 11:53:07 11:58:54 12:02:39 11:58:01 11:47:34 11:40:04 11:43:16 11:56:29 26 27 12:08:34 12:09:02 12:01:33 11:53:48 11:53:13 11:59:06 12:02:38 11:57:44 11:47:14 11:39:58 11:43:35 11:56:58 27 28 12:08:47 12:08:52 12:01:15 11:53:39 11:53:21 11:59:19 12:02:38 11:57:27 11:46:53 11:39:52 11:43:55 11:57:27 28 29 12:08:59 12:08:41 12:00:57 11:53:30 11:53:28 11:59:31 12:02:36 11:57:09 11:46:33 11:39:48 11:44:16 11:57:57 29 30 12:09:10 12:00:39 11:53:22 11:53:36 11:59:43 12:02:34 11:56:51 11:46:13 11:39:44 11:44:38 11:58:26 30 31 12:09:20 12:00:21 11:53:45 12:02:31 11:56:32 11:39:41 11:58:54 31
【附錄】
縣市政府等地之經緯度(依緯度漸增排序)
地 點 | 經 度 | 緯 度 |
---|---|---|
高雄市 | 120.312 | 22.621 |
屏東縣 | 120.488 | 22.683 |
台東縣 | 121.150 | 22.755 |
台南市 | 120.185 | 22.992 |
嘉義縣 | 120.293 | 23.459 |
嘉義市 | 120.454 | 23.481 |
澎湖縣 | 119.566 | 23.569 |
雲林縣 | 120.526 | 23.699 |
南投縣 | 120.690 | 23.903 |
台灣心 | 120.974 | 23.976 |
花蓮縣 | 121.620 | 23.991 |
彰化縣 | 120.545 | 24.075 |
台中市 | 120.647 | 24.162 |
金門縣 | 118.319 | 24.437 |
苗栗縣 | 120.820 | 24.565 |
宜蘭縣 | 121.763 | 24.731 |
新竹市 | 120.969 | 24.807 |
新竹縣 | 121.013 | 24.827 |
桃園市 | 121.301 | 24.993 |
新北市 | 121.465 | 25.013 |
台北市 | 121.565 | 25.037 |
基隆市 | 121.744 | 25.132 |
連江縣 | 119.952 | 26.158 |
沒有留言:
張貼留言