"電源としてバッテリと外部電源とを選択的に用いて駆動する電子機器において、前記外部電源によって前記バッテリを充電する充電部と、前記外部電源によって前記電子機器を駆動可能な状態かを判定する電源状態判定部と、前記電源状態判定部による判定結果の履歴を記憶する履歴記憶部と、前記判定結果の履歴に基づき、過去の所定期間の少なくとも一部において前記電子機器が前記外部電源によって駆動できない状態になった場合には、前記充電部による充電が完了したと判断するバッテリ残量の上限を前記バッテリの最大容量に設定し、前記過去の所定期間の全域において前記電子機器が前記外部電源によって駆動可能であった場合には、前記上限を前記最大容量より小さい所定量に設定する充電制御部と、を有することを特徴とする電子機器。前記充電制御部は、所定の充電時間帯において前記充電部による充電動作を許可し、前記充電時間帯以外の時間帯において前記充電部による充電動作を抑止することを特徴とする請求項1記載の電子機器。前記電子機器は、前記充電時間帯を外部装置から受信する受信部をさらに有することを特徴とする請求項2記載の電子機器。前記履歴記憶部はさらに、バッテリ残量の履歴を記憶し、前記充電制御部は、前記判定結果の履歴に基づき、前記過去の所定期間の少なくとも一部において前記電子機器が前記外部電源によって駆動できない状態になった場合には、前記バッテリ残量の履歴に基づいて、前回の前記充電時間帯の終了時から現在までの期間における単位時間当たりの放電量を算出し、前記単位時間当たりの放電量と、次回の前記充電時間帯の終了時刻からさらにその次の前記充電時間帯の開始時刻までの非充電時間帯の長さとを基に、前記非充電時間帯の開始時において必要なバッテリ残量を算出し、算出した前記必要なバッテリ残量と所定のしきい値との比較結果に基づいて、前記上限を前記最大容量または前記所定量に設定する、ことを特徴とする請求項2または3記載の電子機器。前記履歴記憶部はさらに、バッテリ残量の履歴を記憶し、前記充電制御部は、前記判定結果の履歴に基づき、前記過去の所定期間の少なくとも一部において前記電子機器が前記外部電源によって駆動できない状態になった場合、前記バッテリ残量の履歴から、前記過去の所定期間と同一期間または別の過去の所定期間におけるバッテリ残量の最小値を抽出し、抽出した最小値が所定のしきい値以下である場合には、前記上限を前記最大容量に設定し、前記抽出した最小値が前記しきい値より大きい場合には、前記上限を前記所定量に設定する、ことを特徴とする請求項1~3のいずれか1項に記載の電子機器。電源としてバッテリと外部電源とを選択的に用いて駆動するとともに、前記外部電源によって前記バッテリを充電する充電部を備える電子機器における充電制御方法であって、前記電子機器が、前記外部電源によって前記電子機器を駆動可能な状態かを判定して、その判定結果の履歴を履歴記憶部に記憶し、前記判定結果の履歴に基づき、過去の所定期間の少なくとも一部において前記電子機器が前記外部電源によって駆動できない状態になった場合には、前記充電部による充電が完了したと判断するバッテリ残量の上限を前記バッテリの最大容量に設定し、前記過去の所定期間の全域において前記電子機器が前記外部電源によって駆動可能であった場合には、前記上限を前記最大容量より小さい所定量に設定する、ことを特徴とする充電制御方法。電源としてバッテリと外部電源とを選択的に用いて駆動するとともに、前記外部電源によって前記バッテリを充電する充電部を備えるコンピュータに、前記外部電源によって前記電子機器を駆動可能な状態かを判定して、その判定結果の履歴を履歴記憶部に記憶し、前記判定結果の履歴に基づき、過去の所定期間の少なくとも一部において前記電子機器が前記外部電源によって駆動できない状態になった場合には、前記充電部による充電が完了したと判断するバッテリ残量の上限を前記バッテリの最大容量に設定し、前記過去の所定期間の全域において前記電子機器が前記外部電源によって駆動可能であった場合には、前記上限を前記最大容量より小さい所定量に設定する、処理を実行させることを特徴とする充電制御プログラム。しかしながら、バッテリの充電量の上限を抑制した場合、充電可能な最大容量定格値になるまで充電した場合と比較して、バッテリを用いた電子機器の駆動可能時間が短くなってしまい、ユーザの利便性が損なわれるという問題がある。本発明はこのような課題に鑑みてなされたものであり、バッテリの性能劣化を抑制しつつ、ユーザの利便性を向上させた電子機器、充電制御方法およびプログラムを提供することを目的とする。上記目的を達成するために、電源としてバッテリと外部電源とを選択的に用いて駆動する電子機器が提供される。この電子機器は、充電部、電源状態判定部、履歴記憶部および充電制御部を有する。充電部は、外部電源によってバッテリを充電する。電源状態判定部は、外部電源によって電子機器を駆動可能な状態かを判定する。履歴記憶部は、電源状態判定部による判定結果の履歴を記憶する。充電制御部は、上記の判定結果の履歴に基づき、過去の所定期間の少なくとも一部において電子機器が外部電源によって駆動できない状態になった場合には、充電部による充電が完了したと判断するバッテリ残量の上限をバッテリの最大容量に設定し、過去の所定期間の全域において電子機器が外部電源によって駆動可能であった場合には、上記の上限をバッテリの最大容量より小さい所定量に設定する。また、上記目的を達成するために、上記の電子機器と同様の処理が実行される充電制御方法が提供される。さらに、上記目的を達成するために、電源としてバッテリと外部電源とを選択的に用いて駆動するとともに、外部電源によってバッテリを充電する充電部を備えるコンピュータに、上記の電子機器と同様の処理を実行させる充電制御プログラムが提供される。上記の電子機器、充電制御方法および充電制御プログラムによれば、バッテリの性能劣化を抑制しつつ、ユーザの利便性を向上させることができる。以下、実施の形態について図面を参照して詳細に説明する。第1の実施の形態図1は、第1の実施の形態に係る電子機器の構成例を示す図である。図1に示す電子機器1は、電源としてバッテリ11と外部電源2とを選択的に用いて駆動する。外部電源2は、例えば、一般的な商用ACAlternatingCurrent電源である。また、電子機器1は、バッテリ11を充電する充電部12を備える。充電部12は、外部電源2によってバッテリ11を充電する。電子機器1はさらに、電源状態判定部13、履歴登録部14および充電制御部15を備える。電源状態判定部13は、電子機器1が外部電源2によって駆動可能な状態かを判定する。例えば、電源状態判定部13は、外部電源2から電圧供給を受けるためのケーブルが電子機器1に接続され、かつ、そのケーブルに外部電源2からの電圧が印加されている場合に、電子機器1が外部電源2によって駆動可能な状態であると判定する。履歴登録部14は、電源状態判定部13による判定結果の履歴を、電源状態履歴21として記憶部20に登録する。なお、記憶部20は、電子機器1の内部に設けられていても、あるいはその外部に接続されていてもよい。充電制御部15は、記憶部20に登録された電源状態履歴21に基づいて、充電部12による充電が完了したと判断するバッテリ残量の上限以下、充電量の上限と呼ぶを、第1の値と第2の値のいずれかに設定する。第1の値は、バッテリ11の最大容量すなわち容量の100であるのに対し、第2の値は、最大容量より小さい値例えば容量の80である。ここで、図2は、バッテリの充放電回数とバッテリ容量との関係の例を示すグラフである。一般的に、バッテリは、過充電を繰り返すと、満充電時におけるバッテリの容量が徐々に低下する、バッテリの寿命が短くなるなど、バッテリの性能が低下することが知られている。例えば、図2に示すように、バッテリ残量がバッテリ容量の最大値100になるまで充電する動作を繰り返した場合、バッテリ残量がバッテリ容量の最大値の80になるまで充電する動作を繰り返す方が、バッテリ容量は緩やかに低下する。以下、図1に戻って説明する。充電部12による充電量の上限を第1の値、すなわちバッテリ11の最大容量に設定した場合には、充電終了後におけるバッテリ11による駆動時間を長くすることができる。一方、充電部12による充電量の上限を、バッテリ11の最大容量より小さい第2の値に設定した場合には、バッテリ11が満充電状態にならないので、バッテリ11の過充電が防止される。これにより、満充電時におけるバッテリ11の容量低下や、バッテリ11の寿命の短縮といった、バッテリ11の性能低下が発生しにくくなる。充電制御部15は、電源状態履歴21に基づき、過去の所定期間において、電子機器1が外部電源2によって駆動できない状態になったかを判定する。充電制御部15は、過去の所定期間の全域において電子機器1が外部電源2によって駆動可能であったと判定した場合には、充電部12による充電量の上限を、バッテリ11の最大容量より小さい第2の値に設定する。ここで、過去の所定期間の全域において電子機器1が外部電源2によって駆動可能であった場合には、電子機器1は、今後も外部電源2によって駆動可能な状態で使用される確率が高い。このため、バッテリ11による駆動可能時間を長くする必要性は低いと考えられる。このことから、充電制御部15は、バッテリ11による駆動可能時間よりバッテリ11の性能劣化を防止することが優先されるように、充電部12による充電量の上限を抑制する。一方、充電制御部15は、過去の所定期間の少なくとも一部において、電子機器1が外部電源2によって駆動できない状態になったと判定した場合には、充電部12による充電量の上限を、第1の値、すなわちバッテリ11の最大容量に設定する。ここで、外部電源2によって駆動できない状態では、電子機器1はバッテリ11のみを電源として用いて駆動するので、バッテリ11による駆動可能時間は長いことが望ましい。過去の所定期間の少なくとも一部において電子機器1が外部電源2によって駆動できない状態になった場合には、電子機器は今後も同様の状態で使用される可能性が高いと考えられる。このことから、充電制御部15は、バッテリ11による駆動可能時間が長くなるように、充電部12にできるだけ多くの量を充電させる。以上の処理によれば、バッテリ11の性能劣化をできるだけ防止しつつも、電子機器1の使用状況すなわち、外部電源2によって駆動できない状態で使用されたかに合わせて、バッテリ11による駆動時間が電子機器1の使用に必要十分な時間になるように、充電動作が制御される。これにより、バッテリ11の性能劣化を抑制しつつ、電子機器1を使用するユーザの利便性も高めることができる。また、電子機器1はさらに、残量検出部16を備えていてもよい。残量検出部16は、バッテリ11の残量を検出する。この場合、履歴登録部14は、残量検出部16の検出結果に基づき、バッテリ11の残量の履歴を残量履歴22として記憶部20に登録してもよい。充電制御部15は、例えば、電源状態履歴21に基づき、過去の所定期間の少なくとも一部において電子機器1が外部電源2によって駆動できない状態になったと判定した場合には、残量履歴22から、過去の所定期間におけるバッテリ11の残量の最小値を抽出する。そして、充電制御部15は、抽出した最小値と所定のしきい値th1との比較結果に応じて、充電部12による充電量の上限を設定する。充電制御部15は、残量履歴22から抽出した最小値がしきい値th1より大きい場合には、充電部12による充電量の上限を、バッテリ11の最大容量より小さい第2の値に設定する。上記の最小値がしきい値th1より大きい場合、過去の所定期間に電子機器1がバッテリ11によって駆動された時間があまり長くないと考えられる。このことから、充電制御部15は、バッテリ11による駆動可能時間よりバッテリ11の性能劣化を防止することが優先されるように、充電部12による充電量の上限を抑制する。一方、充電制御部15は、残量履歴22から抽出した最小値がしきい値th1以下である場合には、充電部12による充電量の上限を第1の値、すなわちバッテリ11の最大容量に設定する。上記の最小値がしきい値th1以下である場合、過去の所定期間に電子機器1がバッテリ11によって比較的長い時間駆動されたと考えられる。このことから、充電制御部15は、バッテリ11による駆動可能時間が長くなるように、充電部12にできるだけ多くの量を充電させる。以上のような残量履歴22に基づく充電制御部15の充電制御処理によれば、ユーザの利便性を損ねることなく、バッテリ11の性能劣化を抑制することができる。なお、電子機器1は、バッテリ11と電子回路とが一体化されたバッテリパックを搭載してもよい。この場合、図1に示した充電部12、履歴登録部14、充電制御部15および残量検出部16の各処理は、バッテリパック内の電子回路によって実行することもできる。第2の実施の形態次に、電子機器の例として、ピークシフトに対応したノートPCを挙げて説明する。図3は、第2の実施の形態に係る情報処理システムの構成例を示す図である。ノートPC100は、電源として、内部のバッテリと、外部の商用AC電源のいずれかを選択的に用いて駆動可能な、可搬型の電子機器である。また、ノートPC100は、商用AC電源から供給される電圧を用いて、バッテリを充電する機能も備える。このノートPC100は、インターネット200を介して、ピークシフトDBデータベースサーバ210と通信可能になっている。ピークシフトDBサーバ210は、例えば、商用AC電源を供給する電力会社が運営するサーバである。ピークシフトDBサーバ210には、商用AC電源の提供地域と、ピークシフト期間とが対応付けて登録されている。ピークシフト期間は、後述するように、一日の中で電力会社に対する電力需要が比較的小さい所定の時間帯である。ノートPC100などの電子機器は、インターネット200を介して、自装置の位置情報をピークシフトDBサーバ210に通知することにより、通知した位置情報に対応するピークシフト期間を受信できる。また、ノートPC100は、自装置の位置を認識する手段の例として、GPSGlobalPositioningSystem受信機能を備える。ノートPC100は、GPS衛星220からの電波を受信することで、自装置の緯度経度を認識する。なお、実際には、ノートPC100は、複数のGPS衛星220から電波を受信する。ここで、ピークシフトについて説明する。図4は、電力会社に対する1日における電力需要の例を示すグラフである。電力会社に対する電力需要は時刻に応じて変動する。図4の例では、夜間と比較して昼間における電力需要が大きく、14時から15時までの間で電力需要は最大になる。このような需要変動の理由としては、昼間には冷房あるいは暖房による電力消費が大きくなることが大きい。ピークシフトとは、電力の供給を受ける側が、電力需要が比較的大きい時間帯での電力消費を減らすとともに、電力需要が比較的小さい時間帯での電力消費を増やすようにするものである。このようなピークシフトにより、1日における電力需要を平準化し、電力需要のピーク値を低くすることができる。本実施の形態のノートPC100は、バッテリの充電を電力需要が比較的小さい時間帯に行うことで、ピークシフト機能を実現する。具体的には、ノートPC100は、バッテリを充電する時間帯をピークシフト期間として記憶し、現在時刻がピークシフト期間に差しかかるとバッテリの充電を実行する一方、ピークシフト期間外の時間帯では、基本的にバッテリの充電を実行しないようにする。また、ピークシフト期間は、電力会社に対する電力需要に応じて、ノートPC100に対して自動的に設定される。ピークシフト期間は、少なくとも、電力需要が最大となる時刻を含まない期間に設定される。より好ましくは、図4の例のように、ピークシフト期間は、電力需要が最小となる時刻図4では5時頃を含む期間に設定される。ピークシフトDBサーバ210に接続されたピークシフトDB211には、電力需要に基づくピークシフト期間が登録される。ノートPC100は、ピークシフトDBサーバ210にアクセスして、ピークシフトDB211に登録されたピークシフト期間を取得し、自装置内に設定する。また、例えば、電力会社は、電力需要の予測に基づいてピークシフト期間を決定し、決定したピークシフト期間をピークシフトDB211に登録する。この場合、ピークシフトDB211には、ピークシフト期間が電力会社ごとに登録されてもよい。また、通常、電力供給元の電力会社は地域ごとに異なることから、ピークシフトDB211には、電力供給先の位置情報と、ピークシフト期間とが対応付けて登録されていてもよい。このように、ピークシフトDB211においてピークシフト期間が電力会社または位置情報ごとに対応付けて登録されることにより、ノートPC100は、自装置に対する電力供給元の電力会社が決定したピークシフト期間を、ピークシフトDBサーバ210を通じて取得することができる。図5は、ピークシフトDBに登録される情報の例を示す図である。ピークシフトDB211には、ピークシフト期間の開始時刻および終了時刻が、位置情報および電力会社名に対応付けて登録されている。図5に示すピークシフトDB211には、位置情報の例としてグリッド座標が登録されている。グリッド座標は、地図を南北方向および東西方向のそれぞれに対して所定間隔の緯線および経線で分割し、分割して得られた各グリッドの位置を緯度および経度で表したものである。図5の例では、グリッド座標を、グリッドの左上北西方向の頂点についての緯度および経度と、グリッドの右下南東方向の頂点についての緯度および経度とによって示している。また、ピークシフトDB211では、1つのグリッド座標に対して、そのグリッド座標が示す地域に電力を供給する1つの電力会社が対応付けられる。複数のグリッドに対応する地域に同じ電力会社が電力を供給している場合には、複数のグリッド座標に対して同じ電力会社が対応付けられる。そして、ピークシフトDB211では、電力会社ごとにピークシフト期間の開始時刻および終了時刻が対応付けられる。従って、ノートPC100などの電子機器は、ピークシフトDBサーバ210に対して、自装置の位置を示す緯度および経度、あるいは自装置が存在する地域に電力を供給する電力会社名を通知することで、自装置の位置に適合するピークシフト期間を取得できる。さらに、ピークシフトDB211には、ピークシフトメリットが登録される。ピークシフトメリットの欄には、登録されたピークシフト期間に電力を消費することで、ユーザ側が得られるメリットや、環境に与えるメリットなどを示す情報が記載される。例えば、ピークシフト期間に電力を消費することで受けられる電気料金の割引を示す情報や、ピークシフト期間外での電力消費を抑制することによる環境保護への貢献について示す情報などが記載される。なお、これらの例のうち後者に関しては、電力需要が大きい時間帯では、発電用燃料として石油の使用比率が高まることから、ピークシフト期間外での電力消費を抑制することで、CO2の排出を削減する効果が得られる。ノートPC100は、ピークシフトDBサーバ210を通じて、ピークシフト期間とともにピークシフトメリットを受信し、ピークシフトメリットに記載された情報を、モニタなどを通じてユーザに通知することができる。なお、上記のピークシフトDB211におけるピークシフト期間は、例えば、電力会社による電力需要予測に応じて適宜更新される。例えば、ピークシフト期間は、1日に1回更新されてもよい。この場合、例えば、ピークシフトDBサーバ210は、ピークシフトDB211に登録された、ある電力会社に対応するピークシフト期間の終了時刻に達すると、その電力会社から通知された翌日のピークシフト期間の開始/終了時刻を、ピークシフトDB211に上書き登録する。これにより、ピークシフトDBサーバ210は、ノートPC100からピークシフト期間の送信要求を受けたとき、このノートPC100の位置に電力を供給する電力会社に対応する次のピークシフト期間を返信するようになる。あるいは、ピークシフトDB211には、日付ごと、月ごと、季節ごとなど、所定の期間ごとに、ピークシフト期間が登録されていてもよい。ところで、ノートPC100は、バッテリを充電する際の充電モードとして、バッテリがバッテリ容量の100になるまで充電する100充電モードと、バッテリが例としてバッテリ容量の80になった時点で充電を停止させる80充電モードとを備える。すなわち、100充電モードは、充電によりバッテリ容量が100に達したとき、充電が完了したと判断する充電モードであり、80充電モードは、充電によりバッテリ容量が80に達したとき、充電が完了した判断する充電モードである。図2で説明したように、100充電モードで充電を行った場合、バッテリが過充電になる可能性があることから、80充電モードで充電を行った場合よりバッテリの性能低下が早まる可能性がある。その反面、100充電モードで充電を行った場合、80充電モードよりバッテリによるノートPC100の駆動可能時間は長くなる。ノートPC100は、上記のピークシフト期間においてバッテリを充電する際に、それまでの自装置の使用状況に応じて、100充電モードと80充電モードのどちらで充電を行うかを自動的に切り替える機能を備える。また、ノートPC100は、100充電モードと80充電モードのどちらで充電を行う方が適切かを、画面への表示を通じてユーザに知らせ、ユーザによる操作入力に応じて充電モードを設定することもできる。次に、ノートPC100の構成および処理について説明する。まず、図6は、ノートPCのハードウェア構成例を示す図である。ノートPC100は、CPUCentralProcessingUnit101によって装置全体が制御されている。CPU101には、バス109を介して、RAMRandomAccessMemory102と複数の周辺機器が接続されている。RAM102は、ノートPC100の主記憶装置として使用される。RAM102には、CPU101に実行させるOSOperatingSystemプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。バス109に接続されている周辺機器としては、HDDHardDiskDrive103、グラフィックインタフェースI/F104、入力インタフェース105、光学ドライブ装置106、ネットワークインタフェース107、GPS受信部108および電源制御回路120がある。HDD103は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、ノートPC100の二次記憶装置として使用される。HDD103には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの他の種類の不揮発性記憶装置を使用することもできる。グラフィックインタフェース104には、ディスプレイ104aが接続されている。グラフィックインタフェース104は、CPU101からの命令に従って、画像をディスプレイ104aに表示させる。なお、ディスプレイ104aは、例えば、液晶ディスプレイである。入力インタフェース105には、入力装置105aが接続されている。入力装置105aは、例えば、キーボード、タッチパネルなどを含む。入力インタフェース105は、入力装置105aからの出力信号をCPU101に送信する。光学ドライブ装置106は、レーザ光などを利用して、光ディスク106aに記録されたデータの読み取りを行う。光ディスク106aは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク106aには、DVDDigitalVersatileDisc、DVD-RAM、CD-ROMCompactDiscReadOnlyMemory、CD-RRecordable/RWRewritableなどがある。ネットワークインタフェース107は、例えば、ノートPC100が設置された建物内のネットワークに接続されている。ネットワークインタフェース107は、そのネットワークを通じて、インターネット200に接続された他の機器と通信する。GPS受信部108は、GPS衛星220からの電波をアンテナ108aを通じて受信し、受信電波から抽出した情報を基に、ノートPC100の緯度および経度を算出して、CPU101に送信する。電源制御回路120には、バッテリ130および電源回路140が接続されている。電源回路140は、バッテリ130からの電圧、または商用AC電源から図示しないACアダプタを通じて供給される電圧のいずれかを、ノートPC100内部へ供給する。電源制御回路120は、例えば、CPU101からの要求に応じて、バッテリ130における充放電動作の制御や、電源回路140がノートPC100の内部へ供給する電圧の供給元の切り替えを行う。また、電源制御回路120は、バッテリ130の残量を計算してCPU101に通知する機能も備える。図7は、ノートPCの電源に関連する構成例を示す図である。ノートPC100は、例えば、ACアダプタ300を通じて、商用AC電源の供給を受ける。ACアダプタ300は、図示しないコンセントジャックに接続したコンセントプラグ301から供給されるAC電圧をDCDirectCurrent電圧に変換し、電源プラグ302から出力する。ノートPC100には電源ジャック141が設けられており、電源プラグ302は電源ジャック141に差し込み可能になっている。電源回路140は、電源制御回路120による制御の下で、電源ジャック141から供給される電圧と、バッテリ130から供給される電圧のいずれかを、所定の電源電圧に変換して、ノートPC100の内部へ供給する。また、前者の場合、電源回路140は、電源ジャック141からの供給電圧に基づく電源電圧をバッテリ130にも供給する。なお、電源回路140は、ノートPC100が電源オンの状態だけでなく、電源オフの状態でも、電源制御回路120に対しては電源電圧を供給し続ける。これにより、電源制御回路120は、ノートPC100の電源状態に関係なく常時動作する。なお、ここで言うノートPC100が電源オフの状態とは、少なくとも、図6のCPU101に対して電源回路140からの電源電圧が供給されていない状態である。バッテリ130は、電荷が蓄積されるバッテリセル131と、充放電回路132とを備える。充放電回路132は、電源回路140から電圧の供給を受けてバッテリセル131を充電する充電動作と、バッテリセル131から電源回路140への放電動作とを、電源制御回路120による制御の下でそれぞれ個別にオン/オフする。また、充放電回路132は、充電時に流れる電流量および放電時に流れる電流量を電源制御回路120に通知する機能も備える。電源制御回路120は、AC接続検知部121、残量検出部122および電源制御部123を備える。これらのブロックの処理の一部は、例えば、電源制御回路120が備えるCPU図示せずが、所定のファームウェアプログラムを実行することで実現することができる。また、電源制御回路120の内部には、不揮発性のメモリ124が設けられている。メモリ124には、充電モード151およびピークシフト期間152が記憶される。充電モード151は、バッテリ130の充電モードが100充電モードと80充電モードのどちらに設定されているかを示すフラグ情報である。ピークシフト期間152は、前述のピークシフトDBサーバ210から受信したピークシフト期間の開始時刻および終了時刻を含む。AC接続検知部121は、ACアダプタ300からの電圧が、電源プラグ302を通じて電源ジャック141に供給されているか否かすなわち、ノートPC100が商用AC電源によって駆動可能な状態か否かを検知する。AC接続検知部121は、検知結果をCPU101および電源制御部123に出力する。残量検出部122は、バッテリセル131の残量以下、バッテリ残量と呼ぶを算出する。残量検出部122は、例えば、充放電回路132から充電時および放電時の各電流量を取得し、充電時の電流量を積算するとともに放電時の電流量を減算することで、バッテリセル131の充電量を算出する。残量検出部122は、算出した充電量を基に、バッテリセル131に蓄積された電力残量Capacity,単位はmWhと、満充電時におけるバッテリセル131の電力量FullChargedCapacity,単位はmWhとを算出し、満充電時の電力量に対する電力残量の比を、バッテリ残量としてCPU101および電源制御部123に出力する。なお、例えば、最終的なバッテリ残量を、CPU101や電源制御部123が算出してもよい。電源制御部123は、電源回路140における電源選択動作や、充放電回路132における充電動作および放電動作のオン/オフを制御する。電源制御部123は、AC接続検知部121の検知結果に基づき、ACアダプタ300からの電圧が電源ジャック141に供給されているとき、電源回路140に、ACアダプタ300からの電圧に基づく電源電圧を出力させる。一方、電源制御部123は、ACアダプタ300からの電圧が電源ジャック141に供給されていないとき、電源回路140に、バッテリ130からの電圧に基づく電源電圧を出力させる。また、電源制御部123は、計時機能を備え、現在時刻がピークシフト期間152に入ると、充放電回路132における充電動作を許可し、バッテリセル131の充電を開始させる。さらに、電源制御部123は、残量検出部122の検出結果に基づき、ピークシフト期間152に含まれない時間帯でも、バッテリ残量が一定割合より小さくなると、バッテリセル131の充電を開始させる。電源制御部123は、充放電回路132による充電量の上限を、充電モード151に基づいて制御する。充電モード151が100モードを示すとき、電源制御部123は、残量検出部122が検出するバッテリ残量が100になるまで、充放電回路132に充電動作を実行させる。一方、充電モード151が80モードを示すとき、電源制御部123は、バッテリ残量が80に達すると充放電回路132に充電動作を終了させる。なお、充電モード151は、CPU101によって設定される。次に、図8は、アプリケーションプログラムの実行により実現されるノートPCの処理機能の構成例を示すブロック図である。ノートPC100は、電源監視部161、ピークシフト情報取得部162、電源状況分析部163およびUIUserInterface制御部164を備える。これらの処理ブロックによる処理は、例えば、CPU101が所定のアプリケーションプログラムを実行することで実現される。電源監視部161は、AC接続検知部121による検知結果と、残量検出部122が出力するバッテリ残量のそれぞれの履歴を、HDD103に格納された電源状況DBデータベース171に登録する。ピークシフト情報取得部162は、電源状況分析部163からの要求に応じて、GPS受信部108にノートPC100の位置を検出させる。ピークシフト情報取得部162は、GPS受信部108によって検出された緯度経度をピークシフトDBサーバ210に通知して、ピークシフト期間を問い合わせる。ピークシフト情報取得部162は、ピークシフトDBサーバ210から、ノートPC100の位置において電力を供給する電力会社に対応するピークシフト期間の開始時刻および終了時刻と、ピークシフトメリットとを受信する。電源状況分析部163は、ピークシフト情報取得部162が受信したピークシフト期間の開始時刻および終了時刻を、電源制御回路120のメモリ124内のピークシフト期間152に上書き登録する。このとき、電源状況分析部163は、電源状況DB171に登録された履歴を基に、過去の所定期間におけるノートPC100の使用状況を分析し、その分析結果に基づいて適切な充電モードを判定する。電源状況分析部163は、HDD103に格納されたUIフラグ172が0の場合、使用状況の分析結果に基づいて判定した適切な充電モードを、電源制御回路120のメモリ124の充電モード151に対して自動的に設定する。一方、電源状況分析部163は、UIフラグ172が1の場合には、UI制御部164に、充電モードの設定についてユーザにアドバイスするためのアドバイス画面を表示させ、ユーザが設定許可操作を行った場合に、充電モード151の設定を行う。また、電源状況分析部163は、使用状況の分析結果に基づいて判定した適切な充電モードとともに、ピークシフト期間152が受信したピークシフトメリットをUI制御部164に通知する。なお、UIフラグ172は、ユーザの入力操作によって設定される。UI制御部164は、UIフラグ172が1のとき、電源状況分析部163からの要求に応じて、ディスプレイ104aにアドバイス画面を表示させる。UI制御部164は、アドバイス画面に、電源状況分析部163が適切と判定した充電モードを表示させるとともに、ピークシフトメリットの内容も表示させて、充電モードの設定を促す。また、UI制御部164は、アドバイス画面の他、例えば、UIフラグ172を設定するための設定画面をディスプレイ104aに表示させ、UIフラグ172の設定操作を受け付けることもできる。なお、UIフラグ172が0である設定モード、すなわち電源状況分析部163が充電モード151を自動設定する設定モードを、自動設定モードと呼ぶ。一方、UIフラグ172が1である設定モード、すなわちアドバイス画面の表示後にユーザの操作に応じて充電モード151を設定する設定モードを、手動設定モードと呼ぶ。図9は、電源状況DBに登録される情報の例を示す図である。電源監視部161は、AC接続検知部121による検知結果と、残量検出部122によるバッテリ残量の検出結果とを、一定時間ごとに取得して、電源状況DB171に登録する。本実施の形態では例として、電源監視部161は、これらの情報を10分ごとに取得して電源状況DB171に登録する。図9に示すように、電源状況DB171には、上記各情報を取得したときの日時と、AC接続ステータスおよびバッテリ残量とが対応付けて登録される。これらの登録情報のうち、AC接続ステータスは、AC接続検知部121による検知結果を示すフラグ情報である。AC接続ステータスが1である場合、ACアダプタ300からの電圧が電源ジャック141に供給されていることを示し、AC接続ステータスが0である場合、ACアダプタ300からの電圧が電源ジャック141に供給されていないことを示す。なお、後者の状態は、電源ジャック141に電源プラグ302が接続されていない状態と、電源ジャック141に電源プラグ302が接続されているものの、コンセントプラグ301がコンセントジャックに接続されていないなどの原因で、ACアダプタ300からの電圧が電源ジャック141に供給されていない状態とを含む。次に、ノートPC100における処理について、フローチャートを用いて説明する。まず、図10は、充電モードの設定処理手順の例を示すフローチャートである。この図10の処理は、ノートPC100が電源オン状態であるときに、電源状況分析部163の制御の下で少なくとも1日に1回実行される。[ステップS11]電源状況分析部163は、ピークシフト情報取得部162にピークシフト情報を取得するように要求する。要求を受けたピークシフト情報取得部162は、GPS受信部108にノートPC100の位置情報緯度経度を検出させ、これらの位置情報をGPS受信部108から取得する。なお、ピークシフト情報取得部162は、ノートPC100の位置情報を、GPS衛星を用いる方法以外の他の方法によって取得してもよい。例えば、ピークシフト情報取得部162は、インターネット200上の位置調査サーバに対してパケットを送信する。位置調査サーバは、ピークシフト情報取得部162からの送信パケットから送信元IPInternetProtocolアドレスを抽出し、抽出したIPアドレスから、ノートPC100がインターネット200への接続に利用しているインターネットプロバイダを特定する。位置調査サーバは、特定したインターネットプロバイダによるサービス提供地域を、ノートPC100のピークシフト情報取得部162に返信する。ピークシフト情報取得部162は、返信されたサービス提供地域を位置情報として、ピークシフトDBサーバ210に問い合わせる。また、ノートPC100のネットワークインタフェース107が無線LANLocalAreaNetworkインタフェースである場合には、ピークシフト情報取得部162は、ノートPC100の位置情報を次のような方法で取得することもできる。インターネット200、あるいはノートPC100が接続されたローカルネットワークには、無線LANアクセスポイントのMACアドレスMediaAccessControladdressと、その所在地情報とが対応付けられたDBを有するDBサーバが接続されているものとする。ピークシフト情報取得部162は、ノートPC100と無線通信中の無線LANアクセスポイントのMACアドレスを、無線信号から抽出し、抽出したMACアドレスを上記のDBサーバに送信する。DBサーバは、受信したMACアドレスに対応付けられた所在地情報を、ノートPC100に返信する。ピークシフト情報取得部162は、返信された所在地情報を位置情報として、ピークシフトDBサーバ210に問い合わせる。[ステップS12]ピークシフト情報取得部162は、GPS受信部108から取得した位置情報緯度経度をピークシフトDBサーバ210に送信し、ピークシフト期間を問い合わせる。ピークシフト情報取得部162は、ピークシフトDBサーバ210から、送信した位置情報に対応付けられたピークシフト期間の開始時刻および終了時刻と、ピークシフトメリットとを受信して、電源状況分析部163に通知する。なお、ピークシフト情報取得部162は、例えば、ノートPC100の位置情報の他、商用AC電源の供給元の電力会社名をピークシフトDBサーバ210に送信することで、送信した電力会社名に対応付けられたピークシフト期間およびピークシフトメリットを受信してもよい。あるいは、ピークシフト情報取得部162は、GPS受信部108から取得した位置情報を基に、HDD103にあらかじめ登録されたDBを検索することで、位置情報または電力情報を取得して、ピークシフトDBサーバ210への問い合わせを行ってもよい。あるいは、ピークシフト情報取得部162は、ピークシフトDBサーバ210に対して問い合わせを行わずに、例えば、ステップS12の処理の際にユーザの操作に応じて受け付けた位置情報または電力会社名を用いて、ステップS13以降の処理を行ってもよい。[ステップS13]電源状況分析部163は、電源状況DB171に登録された情報のうち、現在の日時以前の第1の期間例えば、現在の日付を起点とした過去の1週間におけるAC接続ステータスを参照する。電源状況分析部163は、第1の期間におけるAC接続ステータスがすべて1である場合すなわち、所定期間の全域において、ACアダプタ300からの電圧が電源ジャック141に供給されていた場合、ステップS16の処理を実行する。一方、電源状況分析部163は、所定期間におけるAC接続ステータスのうち1つでも0が登録されている場合すなわち、所定期間の少なくとも一部において、ACアダプタ300からの電圧が電源ジャック141に供給されていない状態が存在した場合、ステップS14の処理を実行する。[ステップS14]電源状況分析部163は、電源状況DB171に登録された情報のうち、現在の日時以前の第2の期間例えば、現在の日付を起点とした過去の1週間におけるバッテリ残量の最小値を抽出する。なお、この処理で参照する第2の期間は、ステップS13で参照する第1の期間と同一であっても、同一でなくてもよい。電源状況分析部163は、抽出した最小値と、バッテリ容量の100より小さい所定割合ここでは例として30とするとを比較する。抽出した最小値が30以下である場合、電源状況分析部163はステップS15の処理を実行する。一方、抽出した最小値が30より大きい場合、電源状況分析部163はステップS16の処理を実行する。[ステップS15]過去の第1の期間において、ACアダプタ300からの電圧が電源ジャック141に供給されていない状態で使用されたことがありS13:No、かつ、過去の第2の期間においてバッテリ残量がバッテリ容量の30以下に低下したことがある場合S14:Yesには、例えばノートPC100を持ち運んで使用するなど、比較的長い時間、商用AC電源を使用せずにノートPC100が使用されることが多いと推定できる。この場合、バッテリ130による駆動可能時間を長くする方がユーザにとって都合がよいと考えられるため、電源状況分析部163は、適切な充電モードを100充電モードと決定する。[ステップS16]過去の第1の期間の全域においてACアダプタ300からの電圧が電源ジャック141に供給されていた場合S13:Yesには、ノートPC100がバッテリ130によって駆動される確率は低いと推定できる。また、過去の第1の期間において、ACアダプタ300からの電圧が電源ジャック141に供給されていない状態で使用されたことがあった場合S13:Noでも、過去の第2の期間においてバッテリ残量がバッテリ容量の30以下に低下したことがない場合S14:Noには、ノートPC100がバッテリ130のみで駆動された時間は比較的短いと推定できる。これらの場合、バッテリ130による駆動可能時間を長くする必要性は低く、バッテリ130の性能劣化を防止することを優先してもユーザの利便性に対して特に問題がないと考えられる。このことから、電源状況分析部163は、適切な充電モードを80充電モードと決定する。なお、ステップS16の処理が実行されるような条件では、ACアダプタ300からの電圧が電源ジャック141に供給され続ける時間が比較的長いと推定される。このような場合でも、80充電モードに設定されることで、バッテリ130が過充電状態になることが防止され、バッテリ130の性能劣化を緩やかにすることができるとともに、バッテリ130の安全性も高まる。[ステップS17]電源状況分析部163は、UIフラグ172を参照する。UIフラグ172が0の場合、すなわち自動設定モードの場合には、電源状況分析部163はステップS18の処理を実行する。一方、UIフラグ172が1の場合、すなわち手動設定モードの場合には、電源状況分析部163はステップS19の処理を実行する。[ステップS18]電源状況分析部163は、ステップS15またはステップS16で決定した適切な充電モードによって、電源制御回路120のメモリ124に設定された充電モード151を更新する。また、電源状況分析部163は、ステップS12で受信したピークシフト期間の開始終了時刻を用いて、メモリ124に設定されたピークシフト期間152を更新する。[ステップS19]電源状況分析部163は、ステップS15またはステップS16で決定した適切な充電モードと、ステップS12で受信したピークシフト期間およびピークシフトメリットとを、UI制御部164に通知して、アドバイス画面の表示を要求する。UI制御部164は、電源状況分析部163によって決定された適切な充電モードと、ピークシフト期間の開始終了時刻と、ピークシフトメリットの内容とを含むアドバイス画面を生成し、生成したアドバイス画面をディスプレイ104aに表示させる。[ステップS20]UI制御部164は、表示されたアドバイス画面を確認したユーザにより、アドバイス画面に表示した充電モードおよびピークシフト期間を設定することについて了承する入力操作が行われた場合には、その旨を電源状況分析部163に通知する。この場合、電源状況分析部163は、ステップS19でUI制御部164に通知した充電モードおよびピークシフト期間によって、電源制御回路120のメモリ124に設定された充電モード151およびピークシフト期間152を更新する。一方、UI制御部164は、例えば、アドバイス画面に表示した充電モードおよびピークシフト期間を設定することをキャンセルする入力操作が行われた場合には、その旨を電源状況分析部163に通知する。この場合、電源状況分析部163は、電源制御回路120のメモリ124に現在設定されている充電モード151およびピークシフト期間152を更新せずに、処理を終了する。なお、ステップS19,S20の処理は、例えば、ステップS15またはステップS16で決定された充電モードが、メモリ124に現在設定されている充電モード151と異なる場合のみ実行されてもよい。以上の図10の処理では、ステップS13,S14での過去の使用状況に基づく条件判定結果に応じて充電モードを決定することで、ユーザの使用状況に応じて必要十分なバッテリ残量を確保しつつ、バッテリ130の性能劣化をできるだけ防止することができる。また、ノートPC100の位置での電力需要に合致するピークシフト期間を、ピークシフトDBサーバ210から自動的に取得できるようになる。さらに、自動設定モードでは、ノートPC100のユーザが特に何の操作を行うことなく、適切な充電モードおよびピークシフト期間が設定されるので、ユーザの利便性が向上する。図11は、アドバイス画面の表示例を示す図である。UI制御部164は、例えば図11のようなアドバイス画面164aをディスプレイ104aに表示させる。図11のアドバイス画面164aには、ピークシフト期間を2:00~6:00に設定するとともに、充電モードを80充電モードに設定することを推奨する文章が表示されている。また、アドバイス画面164aには、設定要求ボタン164bと表示キャンセルボタン164cとが表示されている。UI制御部164は、設定要求ボタン164bに対するクリック操作が行われると、設定処理が了承された旨を電源状況分析部163に通知する。一方、UI制御部164は、表示キャンセルボタン164cに対するクリック操作が行われると、設定処理のキャンセルが要求された旨を電源状況分析部163に通知する。手動設定モードでは、このようなアドバイス画面164aが表示されるので、ユーザは、適切な充電モードやピークシフト期間の設定内容を確認した後、その設定を反映させることができる。さらに、アドバイス画面164aには、推奨する設定を行った場合のメリットピークシフトメリットについても表示される。図11の例では、電気料金が1kW当たり3円割引されることや、CO2の発生量を削減できるといったピークシフトメリットが表示される。このようなピークシフトメリットをユーザに通知することで、ピークシフトを行うことの動機付けをユーザに与えることができる。その結果、ピークシフトが実行されるノートPCが増加し、電力需要のピークを低減して、発電による環境負荷を小さくすることができるようになる。なお、UI制御部164は、例えば、アドバイス画面を通じて、充電モードの設定可否とピークシフトの設定可否とを、ユーザの操作に応じてそれぞれ個別に受け付けるようにしてもよい。また、UI制御部164は、単に設定の可否の入力を受け付けるだけでなく、ユーザの操作に応じて設定値を受け付けるようにしてもよい。図12は、バッテリの充電制御処理手順の例を示すフローチャートである。なお、電源制御回路120の電源制御部123は、ACアダプタ300からの電圧が電源ジャック141に供給されていることがAC接続検知部121によって検知されている状態において、図12の処理を一定時間例えば30秒ごとに繰り返し実行する。[ステップS31]電源制御部123は、残量検出部122から現在のバッテリ残量を取得し、取得したバッテリ残量をバッテリ容量の所定割合ここでは30とすると比較する。バッテリ残量がバッテリ容量の30以下である場合、電源制御部123はステップS34の処理を実行する。一方、バッテリ残量がバッテリ容量の30より大きい場合、電源制御部123はステップS32の処理を実行する。[ステップS32]電源制御部123は、現在の時刻が、メモリ124に設定されたピークシフト期間152に含まれるかを判定する。現在の時刻がピークシフト期間152に含まれる場合、電源制御部123はステップS34の処理を実行する。一方、現在の時刻がピークシフト期間152に含まれない場合、電源制御部123はステップS33の処理を実行する。[ステップS33]電源制御部123は、充放電回路132での充電動作を禁止する。[ステップS34]電源制御部123は、充放電回路132での充電動作を許可する。このとき、電源制御部123は、残量検出部122によって検出されるバッテリ残量が、メモリ124に設定された充電モード151が示す量に達するまで、充電動作を許可し続ける。例えば、充電モード151として100充電モードが設定されている場合、電源制御部123は、バッテリ残量が100になるまで充電動作を許可する。一方、充電モード151として80充電モードが設定されている場合、電源制御部123は、バッテリ残量が80になるまで充電動作を許可する。以上の図12の処理によれば、基本的に、現在時刻がピークシフト期間152に含まれるとき、バッテリ130の充電が行われる一方、現在時刻がピークシフト期間152に含まれないとき、バッテリ130の充電は実行されない。これにより、電力需要が比較的小さい時間帯にバッテリ130の充電が行われるようになり、電力需要が比較的大きい時間帯における電力消費を低減することができ、1日の電力需要を平準化することに寄与できる。ただし、ピークシフト期間152に含まれない時間帯であっても、バッテリ残量が所定量以下に低下した場合にはバッテリ130の充電が行われるので、バッテリ切れによってノートPC100が使用できなくなることを回避できる。また、電源制御部123は、メモリ124に設定された充電モード151に基づいて、バッテリ130における充電量の上限を制御する。これにより、ユーザの使用状況に応じて必要十分なバッテリ残量が確保され、かつ、バッテリ130の性能劣化ができるだけ防止されるように、バッテリ130の充電量が適正化される。なお、電源制御部123は、ピークシフト期間152に充電動作が行われるような制御を行うだけでなく、ピークシフト期間152に応じて電源回路140での電源選択動作を制御してもよい。具体的には、電源制御部123は、ピークシフト期間152に含まれない時間帯において、ACアダプタ300からの電圧が電源ジャック141に供給されていても、できるだけバッテリ130からの電圧を基に電源電圧を出力するように、電源回路140を制御する。例えば、図12の処理において、電源制御部123は、ステップS33の処理で、充放電回路132での充電動作を禁止するとともに、放電動作を許可する。そして、電源制御部123は、バッテリ130から供給される電圧を基に電源電圧を出力するように、電源回路140を制御する。一方、電源制御部123は、ステップS34の処理で、充放電回路132での充電動作を開始させるとともに、放電動作を禁止する。そして、電源制御部123は、ACアダプタ300から供給される電圧を基に電源電圧を出力するように、電源回路140を制御する。このような処理によれば、ノートPC100は、ピークシフト期間152以外の期間では、バッテリ残量が所定量以下に低下しない限り、バッテリ130を電源として駆動するようになる。これにより、電力需要が比較的大きい時間帯における電力消費を一層低減することができる。第3の実施の形態図13~図15は、バッテリ残量の推移の例を示すグラフである。なお、説明をわかりやすくするために、図13~図15では、ピークシフト期間外の時間帯では、ノートPC100はバッテリ130を電源として駆動し、その駆動時におけるバッテリ残量の低下率は一定であるものとする。上記の第2の実施の形態のノートPC100は、特に、ピークシフト期間の終了から次のピークシフト期間の開始までの時間間隔が大きく変動しない場合に、バッテリ130における充電量の上限を、ユーザの利便性が損なわれないように適切に設定することが可能である。図13は、ピークシフト期間の間隔が等しい場合のバッテリ残量の例を示している。この図13では、ピークシフト期間PS1の終了時刻から次のピークシフトPS2の開始時刻までの時間と、ピークシフト期間PS2の終了時刻から次のピークシフトPS3の開始時刻までの時間とが、等しくなっている。なお、ピークシフト期間PS1の開始時刻以前の1週間程度の期間でも、ピークシフト期間の間隔は図13での間隔と同じであるものとする。ノートPC100の電源状況分析部163は、例えば、ピークシフト期間PS1の終了時刻からピークシフト期間PS2の開始時刻までの期間において、図10の処理を実行する。このとき、電源状況分析部163は、例えばその時点から過去1週間におけるバッテリ残量の履歴を基に、図10のステップS14の判定処理を行い、その判定結果を基に充電モードを決定する。図13の例では、次のピークシフト期間PS2の終了時刻からさらにその次のピークシフトPS3の開始時刻までの間隔は、それ以前の1週間におけるピークシフト期間の間隔と同じである。このため、図10に従って充電モードを決定することで、ピークシフトPS2とピークシフト期間PS3との間でのバッテリ130の放電量を精度よく予測できる。ピークシフト期間PS3が開始する時点でのバッテリ残量は、その前のピークシフト期間PS2が開始する時点でのバッテリ残量と同じになるので、ピークシフト期間PS2とピークシフト期間PS3との間の期間で、バッテリ残量が足りなくなることはない。しかしながら、電力会社に対する電力需要は1日ごとに変わるため、電力会社が設定するピークシフト期間も日によって変動することがある。また、例えば、電力会社が所定の時間帯に停電を予定している場合には、停電予定日の前後でピークシフト期間が大きく変動する場合もあり得る。図14の例では、ピークシフト期間PS11の終了時刻からピークシフト期間PS12の開始時刻までの時間より、ピークシフト期間PS12の終了時刻からピークシフト期間PS13の開始時刻までの時間の方が長い。このような場合、ノートPC100の電源状況分析部163は、ピークシフト期間PS12の開始前までのバッテリ残量の履歴を基に充電モードを決定すると、図14中に太い破線で示すように、ピークシフト期間PS13の開始時刻におけるバッテリ残量が、その前のピークシフト期間PS12の開始時刻におけるバッテリ残量より大きく低下してしまう。場合によっては、ピークシフト期間PS13の開始時刻より前にバッテリ残量が足りなくなり、ユーザの利便性が損なわれる可能性もある。一方、図15の例では、ピークシフト期間PS21の終了時刻からピークシフト期間PS22の開始時刻までの時間より、ピークシフト期間PS22の終了時刻からピークシフト期間PS23の開始時刻までの時間の方が短い。なお、この図15の例では、100充電モードで充電が行われるものとする。このような場合、ノートPC100の電源状況分析部163は、ピークシフト期間PS22の開始前までのバッテリ残量の履歴を基に充電モードを決定すると、ピークシフト期間PS23の開始時刻におけるバッテリ残量は、その前のピークシフト期間PS22の開始時刻におけるバッテリ残量より大きくなってしまう。これは、ピークシフト期間PS22において、ピークシフト期間PS22が終了してから次のピークシフト期間PS23が開始するまでの期間で使用されない無駄な量の充電が行われたことを意味する。このため、ピークシフト期間PS22では、本来80充電モードで充電が行われるべきであったところ、バッテリ130の性能劣化を招く恐れのある100充電モードで充電が行われたことになる。これに対して、次に説明する第3の実施の形態に係るノートPCでは、単位時間ごとの放電量の平均値と、次のピークシフト期間の終了時刻からその次のピークシフト期間の開始時刻までの時間とを基に、充電モードを決定する。これにより、ピークシフト期間が大きく変動した場合でも、利便性の低下やバッテリ性能の劣化を招かないような適切な充電モードが設定されるようにする。図16は、第3の実施の形態に係るノートPCの処理機能の構成例を示す図である。なお、この図16では、図8と同様の構成要素については同じ符号を付して示している。また、第3の実施の形態に係るノートPC100aは、第2の実施の形態に係るノートPC100と同様のハードウェア構成を有する。図16のノートPC100aは、図8に示したピークシフト情報取得部162および電源状況分析部163の代わりに、ピークシフト情報取得部162aおよび電源状況分析部163aを備える。なお、ピークシフト情報取得部162aおよび電源状況分析部163aの処理は、例えば、電源監視部161およびUI制御部164と同様に、ノートPC100aのCPU101が所定のアプリケーションプログラムを実行することで実現される。ピークシフト情報取得部162aは、図8のピークシフト情報取得部162と同様に、ピークシフトDBサーバ210から、ノートPC100aの位置に対応するピークシフト情報を取得する。ただし、ピークシフト情報取得部162aは、次のピークシフト期間についてのピークシフト情報と、さらにその次のピークシフト期間についてのピークシフト情報とを、ピークシフトDBサーバ210から受信する。このため、ピークシフトDB211には、少なくとも次の2回分のピークシフト期間についてのピークシフト情報が、電力会社ごとに登録されている必要がある。電源状況分析部163aは、単位時間が経過するごとに充電モード設定処理を実行する。この充電モード設定処理において、電源状況分析部163aは、電源状況DB171の登録情報を基に、単位時間における放電量バッテリ残量の差分を算出して、HDD103内に格納した単位放電量DBデータベース173に順次登録する。電源状況分析部163aは、単位放電量DB173に登録された、単位時間における放電量の平均を算出する。電源状況分析部163aは、算出した平均放電量と、次のピークシフト期間の終了時刻からさらに次のピークシフト期間の開始時刻までの期間以下、非ピークシフト期間と呼ぶの長さとを基に、次のピークシフト期間の終了時刻から開始される非ピークシフト期間において必要になる必要バッテリ残量を算出する。電源状況分析部163aは、最終的に、必要バッテリ残量の値を基に適切な充電モードを決定する。以下の説明では、例として、単位時間を30分とする。なお、この単位時間は、電源状況DB171に履歴が登録される間隔と同じか、あるいはそれより長い時間とされる。図17~図18は、第3の実施の形態における充電モードの設定処理手順の例を示すフローチャートである。この図17~図18の処理は、ノートPC100aが電源オン状態であるときに、電源状況分析部163aの制御の下で上記の単位時間30分ごとに繰り返し実行される。[ステップS51]電源状況分析部163aは、前回のピークシフト期間が終了した後に、初期処理ステップS52~S55を実行済みか否かを判定する。具体的には、電源状況分析部163aは、電源制御回路120のメモリ124に現在設定されているピークシフト期間152から終了時刻を読み出す。電源状況分析部163aは、読み出した終了時刻が現在時刻より前である場合には、初期処理を実行していないと判定して、ステップS52の処理を実行する。一方、読み出した終了時刻が現在時刻より後である場合には、初期処理はすでに実行済みであり、メモリ124には次のピークシフト期間152がすでに設定されている。この場合、電源状況分析部163aは、ステップS56の処理を実行する。[ステップS52]電源状況分析部163は、HDD103に格納された単位放電量DB173の登録情報をクリアする。[ステップS53]電源状況分析部163は、ピークシフト情報取得部162aにピークシフト情報を取得するように要求する。要求を受けたピークシフト情報取得部162aは、図10のステップS11と同様の手順で、GPS受信部108にノートPC100の位置情報緯度経度を検出させ、これらの位置情報をGPS受信部108から取得する。[ステップS54]ピークシフト情報取得部162aは、GPS受信部108から取得した位置情報緯度経度をピークシフトDBサーバ210に送信し、ピークシフト期間を問い合わせる。ピークシフト情報取得部162は、ピークシフトDBサーバ210から、送信した位置情報に対応付けられた、次のピークシフト期間の開始時刻および終了時刻と、ピークシフトメリットとを受信するとともに、さらに次のピークシフト期間の開始時刻を受信する。[ステップS55]電源状況分析部163aは、次回の非ピークシフト期間の長さを算出する。具体的には、電源状況分析部163aは、ステップS54で取得された、2回後のピークシフト期間の開始時刻から、次のピークシフト期間の終了時刻を減算する。電源状況分析部163aは、算出した次回の非ピークシフト期間の長さを、HDD103に記録する。[ステップS56]電源状況分析部163aは、図10のステップS13と同様の手順で、過去の第1の期間におけるAC接続ステータスに基づく判定を行う。電源状況分析部163aは、第1の期間におけるAC接続ステータスがすべて1である場合、ステップS63の処理を実行する。一方、電源状況分析部163aは、第1の期間におけるAC接続ステータスのうち1つでも0が登録されている場合、ステップS57の処理を実行する。[ステップS57]電源状況分析部163aは、現在バッテリ130が放電中であるかを判定する。なお、電源状況分析部163aは、例えば、電源制御回路120の電源制御部123に対して、バッテリ130が放電中であるかを問い合わせる。電源状況分析部163aは、バッテリ130が放電中である場合、ステップS58の処理を実行する。一方、電源状況分析部163aは、バッテリ130が放電中でない場合、処理を終了する。[ステップS58]電源状況分析部163aは、電源状況DB171から、現在の時刻を起点にして過去の単位時間30分分のバッテリ残量の履歴を抽出する。電源状況分析部163aは、抽出した履歴を基に、30分前のバッテリ残量と最も新しい時刻のバッテリ残量との差分を、単位時間の放電量単位:として算出する。電源状況分析部163aは、算出した単位時間の放電量を、単位放電量DB173に登録する。ここで、ピークシフト期間が終了してから、ステップS58の処理が実行されるたびに、単位放電量DB173には、単位時間の放電量が順次蓄積されていく。単位放電量DB173に登録される放電量の数は、直近のピークシフト期間が終了してから現在までにバッテリ130の電荷が放電された累積放電時間を示すようになる。[ステップS59]電源状況分析部163aは、直近のピークシフト期間が終了してから現在までの非ピークシフト期間における、単位時間30分当たりの放電量以下、基準放電量と呼ぶを算出する。具体的には、電源状況分析部163aは、単位放電量DB173に登録されたすべての放電量を加算し、放電量の加算値を、単位放電量DB173における放電量の登録数すなわち累積放電時間で除算することで、単位時間当たりの基準放電量単位:を算出する。[ステップS60]電源状況分析部163aは、ステップS59で算出した基準放電量と、最後にステップS55が実行されることでHDD103に記録された、次回の非ピークシフト期間の長さ時間とを基に、次回の非ピークシフト期間の開始時において必要なバッテリ残量を算出する。ステップS55で記録される時間の単位が分である場合、ステップS60では、基準放電量×非ピークシフト期間の長さ/30という式によって、必要なバッテリ残量単位:が算出される。[ステップS61]電源状況分析部163aは、ステップS60で算出した、必要なバッテリ残量を、所定のしきい値と比較する。なお、このしきい値は、バッテリ容量の100になる前に充電を停止する充電モードでの充電量の上限値ここでは80以下の値に設定される。必要なバッテリ残量がしきい値以上である場合、電源状況分析部163aはステップS62の処理を実行する。一方、必要なバッテリ残量がしきい値未満である場合、電源状況分析部163aはステップS63の処理を実行する。[ステップS62]次回の非ピークシフト期間の開始時において必要なバッテリ残量がしきい値以上である場合S61:Yes、次回の非ピークシフト期間での放電量は比較的多いと推定できる。この場合、電源状況分析部163aは、バッテリ130による駆動可能時間を長くする必要があると判定して、適切な充電モードを100充電モードと決定する。[ステップS63]次回の非ピークシフト期間の開始時において必要なバッテリ残量がしきい値未満である場合S61:No、次回の非ピークシフト期間での放電量は比較的少ないと推定できる。この場合、電源状況分析部163aは、バッテリ130による駆動可能時間を長くする必要性は低く、バッテリ130の性能劣化を防止するべきであると判定して、適切な充電モードを80充電モードと決定する。なお、過去の第1の期間の全域においてACアダプタ300からの電圧が電源ジャック141に供給されていた場合S56:Yesにも、ノートPC100がバッテリ130によって駆動される確率は低いと推定できる。このため、電源状況分析部163aは、適切な充電モードを80充電モードと決定する。上記のステップS62またはステップS63の実行後、電源状況分析部163aは、UI制御部164と協働して、図10のステップS17~S20での電源状況分析部163の処理と同様の処理を実行する。これにより、ユーザにキャンセル操作されない限り、ステップS62またはステップS63で決定された充電モードが、電源制御回路120のメモリ124における充電モード151に設定されるとともに、ステップS54で取得した次のピークシフト期間の開始終了時刻が、ピークシフト期間152に設定される。以上の第3の実施の形態によれば、過去の使用状況から次の非ピークシフト期間でバッテリ130の放電が行われると予想される場合に、ピークシフト期間の変動のために次の非ピークシフト期間がそれより前の非ピークシフト期間の長さと大きく異なるような場合でも、ユーザの利便性を阻害しない適切な充電モードを設定できるようになる。なお、上記の各実施の形態における電子機器1やノードPC100,100aの処理機能の少なくとも一部は、コンピュータによって実現することができる。その場合、上記各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置HDD、フレキシブルディスクFD、磁気テープなどがある。光ディスクには、DVD、DVD-RAM、CD-ROM、CD-R/RWなどがある。光磁気記録媒体には、MOMagnetoOpticaldiskなどがある。プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD-ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。以上の各実施の形態に関し、さらに以下の付記を開示する。付記1電源としてバッテリと外部電源とを選択的に用いて駆動する電子機器において、前記外部電源によって前記バッテリを充電する充電部と、前記外部電源によって前記電子機器を駆動可能な状態かを判定する電源状態判定部と、前記電源状態判定部による判定結果の履歴を記憶する履歴記憶部と、前記判定結果の履歴に基づき、過去の所定期間の少なくとも一部において前記電子機器が前記外部電源によって駆動できない状態になった場合には、前記充電部による充電が完了したと判断するバッテリ残量の上限を前記バッテリの最大容量に設定し、前記過去の所定期間の全域において前記電子機器が前記外部電源によって駆動可能であった場合には、前記上限を前記最大容量より小さい所定量に設定する充電制御部と、を有することを特徴とする電子機器。付記2前記充電制御部は、所定の充電時間帯において前記充電部による充電動作を許可し、前記充電時間帯以外の時間帯において前記充電部による充電動作を抑止することを特徴とする付記1記載の電子機器。付記3前記電子機器は、前記充電時間帯を外部装置から受信する受信部をさらに有することを特徴とする付記2記載の電子機器。付記4前記履歴記憶部はさらに、バッテリ残量の履歴を記憶し、前記充電制御部は、前記判定結果の履歴に基づき、前記過去の所定期間の少なくとも一部において前記電子機器が前記外部電源によって駆動できない状態になった場合には、前記バッテリ残量の履歴に基づいて、前回の前記充電時間帯の終了時から現在までの期間における単位時間当たりの放電量を算出し、前記単位時間当たりの放電量と、次回の前記充電時間帯の終了時刻からさらにその次の前記充電時間帯の開始時刻までの非充電時間帯の長さとを基に、前記非充電時間帯の開始時において必要なバッテリ残量を算出し、算出した前記必要なバッテリ残量と所定のしきい値との比較結果に基づいて、前記上限を前記最大容量または前記所定量に設定する、ことを特徴とする付記2または3記載の電子機器。付記5前記履歴記憶部はさらに、バッテリ残量の履歴を記憶し、前記充電制御部は、前記判定結果の履歴に基づき、前記過去の所定期間の少なくとも一部において前記電子機器が前記外部電源によって駆動できない状態になった場合、前記バッテリ残量の履歴から、前記過去の所定期間と同一期間または別の過去の所定期間におけるバッテリ残量の最小値を抽出し、抽出した最小値が所定のしきい値以下である場合には、前記上限を前記最大容量に設定し、前記抽出した最小値が前記しきい値より大きい場合には、前記上限を前記所定量に設定する、ことを特徴とする付記1~3のいずれか1つに記載の電子機器。付記6電源としてバッテリと外部電源とを選択的に用いて駆動するとともに、前記外部電源によって前記バッテリを充電する充電部を備える電子機器における充電制御方法であって、前記電子機器が、前記外部電源によって前記電子機器を駆動可能な状態かを判定して、その判定結果の履歴を履歴記憶部に記憶し、前記判定結果の履歴に基づき、過去の所定期間の少なくとも一部において前記電子機器が前記外部電源によって駆動できない状態になった場合には、前記充電部による充電が完了したと判断するバッテリ残量の上限を前記バッテリの最大容量に設定し、前記過去の所定期間の全域において前記電子機器が前記外部電源によって駆動可能であった場合には、前記上限を前記最大容量より小さい所定量に設定する、ことを特徴とする充電制御方法。付記7前記電子機器は、所定の充電時間帯において前記充電部による充電動作を許可し、前記充電時間帯以外の時間帯において前記充電部による充電動作を抑止することを特徴とする付記6記載の充電制御方法。付記8前記電子機器は、前記充電時間帯を外部装置から受信することを特徴とする付記7記載の充電制御方法。付記9前記電子機器は、前記履歴記憶部に対してさらにバッテリ残量の履歴を記憶し、前記判定結果の履歴に基づき、前記過去の所定期間の少なくとも一部において前記電子機器が前記外部電源によって駆動できない状態になった場合には、前記バッテリ残量の履歴に基づいて、前回の前記充電時間帯の終了時から現在までの期間における単位時間当たりの放電量を算出し、前記単位時間当たりの放電量と、次回の前記充電時間帯の終了時刻からさらにその次の前記充電時間帯の開始時刻までの非充電時間帯の長さとを基に、前記非充電時間帯の開始時において必要なバッテリ残量を算出し、算出した前記必要なバッテリ残量と所定のしきい値との比較結果に基づいて、前記上限を前記最大容量または前記所定量に設定する、ことを特徴とする付記7または8記載の充電制御方法。付記10前記電子機器は、前記履歴記憶部に対してさらにバッテリ残量の履歴を記憶し、前記判定結果の履歴に基づき、前記過去の所定期間の少なくとも一部において前記電子機器が前記外部電源によって駆動できない状態になった場合、前記バッテリ残量の履歴から、前記過去の所定期間と同一期間または別の過去の所定期間におけるバッテリ残量の最小値を抽出し、抽出した最小値が所定のしきい値以下である場合には、前記上限を前記最大容量に設定し、前記抽出した最小値が前記しきい値より大きい場合には、前記上限を前記所定量に設定する、ことを特徴とする付記6~8のいずれか1つに記載の充電制御方法。付記11電源としてバッテリと外部電源とを選択的に用いて駆動するとともに、前記外部電源によって前記バッテリを充電する充電部を備えるコンピュータに、前記外部電源によって前記電子機器を駆動可能な状態かを判定して、その判定結果の履歴を履歴記憶部に記憶し、前記判定結果の履歴に基づき、過去の所定期間の少なくとも一部において前記電子機器が前記外部電源によって駆動できない状態になった場合には、前記充電部による充電が完了したと判断するバッテリ残量の上限を前記バッテリの最大容量に設定し、前記過去の所定期間の全域において前記電子機器が前記外部電源によって駆動可能であった場合には、前記上限を前記最大容量より小さい所定量に設定する、処理を実行させることを特徴とする充電制御プログラム。付記12前記コンピュータに、所定の充電時間帯において前記充電部による充電動作を許可し、前記充電時間帯以外の時間帯において前記充電部による充電動作を抑止する処理を実行させることを特徴とする付記11記載の充電制御プログラム。付記13前記コンピュータに、前記充電時間帯を外部装置から受信する処理を実行させることを特徴とする付記12記載の充電制御プログラム。付記14前記コンピュータに、前記履歴記憶部に対してさらにバッテリ残量の履歴を記憶し、前記判定結果の履歴に基づき、前記過去の所定期間の少なくとも一部において前記電子機器が前記外部電源によって駆動できない状態になった場合には、前記バッテリ残量の履歴に基づいて、前回の前記充電時間帯の終了時から現在までの期間における単位時間当たりの放電量を算出し、前記単位時間当たりの放電量と、次回の前記充電時間帯の終了時刻からさらにその次の前記充電時間帯の開始時刻までの非充電時間帯の長さとを基に、前記非充電時間帯の開始時において必要なバッテリ残量を算出し、算出した前記必要なバッテリ残量と所定のしきい値との比較結果に基づいて、前記上限を前記最大容量または前記所定量に設定する、処理を実行させることを特徴とする付記12または13記載の充電制御プログラム。付記15前記コンピュータに、前記履歴記憶部に対してさらにバッテリ残量の履歴を記憶し、前記判定結果の履歴に基づき、前記過去の所定期間の少なくとも一部において前記電子機器が前記外部電源によって駆動できない状態になった場合、前記バッテリ残量の履歴から、前記過去の所定期間と同一期間または別の過去の所定期間におけるバッテリ残量の最小値を抽出し、抽出した最小値が所定のしきい値以下である場合には、前記上限を前記最大容量に設定し、前記抽出した最小値が前記しきい値より大きい場合には、前記上限を前記所定量に設定する、処理を実行させることを特徴とする付記11~13のいずれか1つに記載の充電制御プログラム。"