月に一度の処理 – プログラミング – Home

通知
すべてクリア

[解決済] 月に一度の処理


AFO
 AFO
(@AFO)
ゲスト
結合: 17年前
投稿: 2
Topic starter  

漠然としたテーマの質問で恐縮なのですが
あるアプリケーションを、毎日(とは限らないが)起動しているとして
起動時に月が替わっていたらあるバックアップ処理を一度だけ実行したいのです。
もちろん、一度実行したら、その月の間はバックアップはしません。
ただ、バックアップするかどうか選択画面を呼んで、選択した時だけバックアップ
選択しなかったら、次回起動時にまた選択画面が出る、というふうにしたいのです。

この辺りの判断をする処理を上手に組み込むにはどうしたらいいか
よくやるやり方とかあれば教えていただきたいと思いまして質問しました。
ご経験のあるかた、よろしくお願いいたします。


引用未解決
トピックタグ
Kerry
 Kerry
(@Kerry)
ゲスト
結合: 20年前
投稿: 192
 

最後にバックアップを行った日付をレジストリかなにかに
記録すれば良いと思います。

起動時に、現在の年・月が前回バックアップしたときの
年・月と異なっている、または、前回バックアップの日付が
記録されていない場合は選択画面を出す。

バックアップが選択された場合は、バックアップ処理を行い、
現在の日付を記録する。
選択されなかった場合はなにもしない。


返信引用
maru
 maru
(@maru)
ゲスト
結合: 17年前
投稿: 358
 

アプリケーション固有の情報として「前回バックアップした月」を保存しておき、
アプリケーション起動時に「現在月」と「前回バックアップした月」が異なってい
たら、選択画面をだす。選択してバックアップを行なったら、「現在月」を「前回
バックアップした月」として保存する。
アプリケーション固有の情報として、レジストリやファイルを使う。

これくらいで出来そうだけど。
例えば、
void func(void)
{ int this_month = get_this_month();
if (get_backup_month() != this_month)
{ if (selection() == YES)
{ backup();
set_backup_month(this_month);
}
}
}
こんな関数を作成して、 get_this_month(), get_backup_month(), selection(),
backup(), set_backup_month(int) を適切に作成する。

# どんな関数が適切なのかって?
# 環境が書いてあって、時間があれば考えてもいいけど。...


返信引用
AFO
 AFO
(@AFO)
ゲスト
結合: 17年前
投稿: 2
Topic starter  

kerryさん、maruさん、ありがとうございます。
そうですね、前回バックアップした月だけ覚えておけば
割とスマートにいけそうですね。
それでやってみます。
ありがとうございました。


返信引用
たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
 

そんな想定は必要ないかもしれないけど、
1年ぶりに起動する場合にバックアップできなくなるので一応年も保存しておこう。

年と月を覚えておくなら、いっそ日付や日時を覚えておくほうが、
応用も利くしスマートだと思うな。


返信引用
ん?
 ん?
(@ん?)
ゲスト
結合: 17年前
投稿: 25
 

Windowsのスケジューラーでいいんでは?


返信引用
maru
 maru
(@maru)
ゲスト
結合: 17年前
投稿: 358
 

> Windowsのスケジューラーでいいんでは?
御意。
よく考えたら、自分のPCでもバックアップをスケジューラで動かしていた。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました