123:
編集します
私はいくつかのコードを変更し、コメントに基づいてより多くの記述を追加しました。:)
編集2
私は次のようにwhileループを使用せずに同じ機能を実行する方法を発見しました。
if (lastDay != currentDay)
{
lastDay = currentDay;
//reset counter
daily_counter = 0;
}
if (lastDay == currentDay)
{
daily_counter++;
}
私はに1を加えることを望んでいcount
た場合lastDay
と同じですcurrentDay
。
しかし、ときlastDay == currentDay
、それは最初の実行後に1を追加しません。
ここに私のJavaコードは次のとおりです。
//get current day
Calendar calendar = Calendar.getInstance();
int currentDay = calendar.get(Calendar.DAY_OF_MONTH);
SharedPreferences settings = getSharedPreferences("PREFS", 0);
int lastDay = settings.getInt("day",0);
//compare current day and last day
while (true) {
if (lastDay == currentDay) {
SharedPreferences.Editor editor = settings.edit();
//If a user collected an item, increase the daily counter
daily_counter++;
//commit to system
editor.putString("daily_counter", Integer.toString(daily_counter));
//commit
editor.commit();
//move to detailed description
Intent int1 = new Intent(bottom_nav_camera_yes_button.this, bottom_nav_search_details.class);
startActivity(int1);
break;
} else {
SharedPreferences.Editor editor = settings.edit();
editor.putInt("day", currentDay);
//reset counter
daily_counter = 0;
}
}
念の誰のニーズに、私はC ++に精通していて、次のように、それは私のC ++コードで作業しています:
#include <iostream>
using namespace std;
int main()
{
int lastDay, currentDay, daily_counter = 0;
cout << "enter last day: " << endl;
cin >> lastDay;
cout << "enter current day: " << endl;
cin >> currentDay;
while (true)
{
if (lastDay == currentDay)
{
daily_counter++;
break;
}
else
{
lastDay = currentDay;
//reset counter
daily_counter = 0;
}
}
cout << "daily counter: " << daily_counter << endl;
return 0;
}
quealegriamasalegre:
このちょうどカウンターかどうかを確認するために、まだイマイチの作業をしてみてください
//get current day
Calendar calendar = Calendar.getInstance();
int currentDay = calendar.get(Calendar.DAY_OF_MONTH);
SharedPreferences settings = getSharedPreferences("PREFS", 0);
int lastDay = settings.getInt("day",0);
int daily_counter=Integer.valueOf(settings.getString("daily_counter","0"));
SharedPreferences.Editor editor = settings.edit();
//compare current day and last day
if (lastDay == currentDay) {
//If a user collected an item, increase the daily counter
daily_counter++;
//commit to system
editor.putString("daily_counter", Integer.toString(daily_counter));
//commit
editor.commit();
//move to detailed description
Intent int1 = new Intent(bottom_nav_camera_yes_button.this, bottom_nav_search_details.class);
startActivity(int1);
break;
} else {
editor.putInt("day", currentDay);
//commit
editor.commit();
//reset counter
daily_counter = 0;
}
カウンターたら、それを実行した後、それは1、その後2と上のようになりますそれを2回実行した後に0にする必要があります。あなたはまだそれを保証するいくつかのコードを追加する必要がありますのみ1日1回実行されます