私たちは、例えば、年 - 月 - 日の日付フォーマットである「日付」タイプを使用し、今日は2019年9月14日、2019年9月4日です。
しかし、そのようなプレゼンテーションデータを容易にするために、内部のダウンロードという名前のリモートセンシング画像などのいくつかの場所で、多くの場合、DOY(年の日)クラウド地理空間データのダウンロードlandsat8に示すように、入力します。
「2019133」は2019年の最初の133日間を表し、これは数ヶ月いくつかの数字であると言う普通の人になることはほとんどありません。
特に、リモートセンシング画像の一括ダウンロードした後、そんなに忍耐このようなものをカウントします。したがって、2つの関数の確立は、変換します。
技術的な内容のBenpian使用は高いが、実用的ではありません。
デフdate2doy(年、月、日): month_leapyear = [31,29,31,30,31,30,31,31,30,31,30,31 ] month_notleap = [31,28,31,30,31、 30,31,31,30,31,30,31 ] DOY = 0 の場合、月== 1 : パス のelifの年%4 == 0 と(年%100 = 0!または年%400 == 0): のための私に中範囲(月-1 ): DOY + = month_leapyear [I] 他の: のための私にレンジ(月-1 ): DOY + = month_notleap [i]は DOY + = 日間の リターンDOYの デフdoy2date(年、DOY): month_leapyear = [31,29,31,30,31,30,31,31,30,31 、30,31 ] month_notleap = [31,28,31,30,31,30,31,31,30,31,30,31 ] であれば年%4 == 0 と(年%100!= 0 または年% 400 == 0) のための I における範囲(0,12 ): もし DOY> month_leapyear [I]: DOY - =month_leapyear [i]を 続け た場合 DOY <= month_leapyear [I]: 月 = I + 1 日 = DOYの 休憩 他: 用 I における範囲(0,12 ): 場合 DOY> month_notleap [I]: DOY - = month_notleap [I] 続ける 場合は DOY <= :month_notleap [i]は 、月 = I + 1 日 = DOYの ブレーク リターン 月日