2010/04/08

夏時間を調べてみました。

今回は、USAの夏時間補正方法を調べてみました。
1.USA夏時間DATE
適用期間
開 始 日
終 了 日
2007年より前
4月の第1日曜日
10月の最終日曜日
2007年以降
3月の第2日曜日
11月の第1日曜日
※夏時間中の時間は、1時間シフトする。また、変更日が、日曜日であるとから変更時間は、無視します。 各年の日付を確認してみると以下の表となります。
開始日時
終了日時
2000年4月2日
2000年10月29日
2001年4月1日
2001年10月28日
2002年4月7日
2002年10月27日
2003年4月6日
2003年10月26日
2004年4月4日
2004年10月31日
2005年4月3日
2005年10月30日
2006年4月2日
2006年10月29日
2007年3月11日
2007年11月4日
2008年3月9日
2008年11月2日
2009年3月8日
2009年11月1日
2010年3月14日
2010年1月7日
2011年3月13日
2011年11月6日
2012年3月11日
2012年11月4日
2013年3月10日
2013年11月3日
2014年3月9日
2014年11月2日
2015年3月8日
2015年11月1日
2.算出方法 2007年以降の適用期間を算出出来るようにしてみました。 (ただし、日曜日:0、月曜日:、火曜日:・・・・・とする。)※4/22修正
計算式: イベント日(DAY) = (第○週)×7日 - イベント月の前月の最終日の曜日 + 指定曜日
コード: MakeTime =Year_Now + "."+Start_Month + ".01"; //イベント月の1日を抽出 DST_Start = StrToTime(MakeTime) - 86400.0;//イベント月の前月の最終日を格納 Day_S = Start_Week*7 - TimeDayOfWeek(DST_Start) + Start_DayofWeek;//上記 MakeTime = Year_Now + "."+ Start_Month + "." + Day_S; DST_Start = StrToTime(MakeTime);
3.添付資料 ①【Daylight_Saving_Time.mq4】 説明:2000年以降の夏時間期間は、整数1を、それ以外は0を返す指標です。
②【Economic_Calendar_DST.mq4 】 説明:前回の指標【Economic_Calendar.mq4】に 【Daylight_Saving_Time.mq4】を組み込んでみました。(これが作りたかったんですが・・・)前作に、DSTの有無のパラメータを追加しました。
4.まとめ 上記掲載の開始日時及び終了日時は、計算上で求めた日付です。実際との照合は、とっていませんのでご了承ください。また、上記添付の指標は、2000年以前に対応していませんのでご了承ください。