コード例 #1
0
ファイル: timer.cpp プロジェクト: rocketxyf/cppnet
bool Timer::trigger_month_time(uint64_t old_time)
{
	ACE_Time_Value old_tv;
	old_tv.set_msec(old_time);
	ACE_Date_Time old_dt(old_tv);
	uint64_t new_time = now();
	ACE_Time_Value new_tv;
	new_tv.set_msec(new_time);
	ACE_Date_Time new_dt(new_tv);

	if (new_time <= old_time)
	{
		return false;
	}

	if (new_time - old_time >= uint64_t(86400000) * 31)
	{
		return true;
	}

	int nw = new_dt.month();
	int ow = old_dt.month();

	if (nw != ow)
	{
		return true;
	}

	return false;
}
コード例 #2
0
ファイル: interface_3.1.c プロジェクト: Ingwar/amuse
int evolve(double tlim) {
    
    while (level0_Grid.time < tlim) {
        if ((tlim-level0_Grid.time) < level0_Grid.dt) {
            level0_Grid.dt = (tlim-level0_Grid.time);
        }
        
        (*Integrate)(&level0_Grid);
        
        Userwork_in_loop(&level0_Grid, &level0_Domain);
        
        
#ifdef SELF_GRAVITY
        (*SelfGrav)(&level0_Grid, &level0_Domain);
        /* Only bvals for Phi set when last argument of set_bvals = 1  */
        set_bvals(&level0_Grid, 1);
        selfg_flux_correction(&level0_Grid);
#endif
        
        
        level0_Grid.nstep++;
        level0_Grid.time += level0_Grid.dt;
        new_dt(&level0_Grid);
        set_bvals(&level0_Grid, 0);
    }
    
}
コード例 #3
0
ファイル: interface_3.1.c プロジェクト: Ingwar/amuse
int initialize_grid()
{
  
  set_bvals_init(&level0_Grid, &level0_Domain);
  
  set_bvals(&level0_Grid, 0);
  
  if(!is_dt_set_by_script) {
    new_dt(&level0_Grid);
  }
  lr_states_init(level0_Grid.Nx1,level0_Grid.Nx2,level0_Grid.Nx3);
  
  Integrate = integrate_init(level0_Grid.Nx1,level0_Grid.Nx2,level0_Grid.Nx3);

#ifdef SELF_GRAVITY
  SelfGrav = selfg_init(&level0_Grid, &level0_Domain);
  if(is_restart == 0) {
      (*SelfGrav)(&level0_Grid, &level0_Domain);
  }
  /* Only bvals for Phi set when last argument of set_bvals = 1  */
  set_bvals(&level0_Grid, 1);
#endif
    
  return 0;
}
コード例 #4
0
ファイル: timer.cpp プロジェクト: rocketxyf/cppnet
bool Timer::trigger_time(uint64_t old_time, int hour, int minute)
{
	ACE_Time_Value old_tv;
	old_tv.set_msec(old_time);
	ACE_Date_Time old_dt(old_tv);
	uint64_t new_time = now();
	ACE_Time_Value new_tv;
	new_tv.set_msec(new_time);
	ACE_Date_Time new_dt(new_tv);
	
	if (new_time <= old_time)
	{
		return false;
	}

	if (new_time - old_time >= 86400000)
	{
		return true;
	}

	bool old_small = is_small(old_dt, hour, minute);
	bool new_small = is_small(new_dt, hour, minute);

	if (is_same_day(old_dt, new_dt))
	{
		if (old_small && !new_small)
		{
			return true;
		}
		else
		{
			return false;
		}
	}
	else
	{
		if (!old_small && !new_small)
		{
			return true;
		}
		else if (old_small && new_small)
		{
			return true;
		}
		else
		{
			return false;
		}
	}
	
	return false;
}
コード例 #5
0
ファイル: timer.cpp プロジェクト: rocketxyf/cppnet
bool Timer::trigger_week_time(uint64_t old_time)
{
	ACE_Time_Value old_tv;
	old_tv.set_msec(old_time);
	ACE_Date_Time old_dt(old_tv);
	uint64_t new_time = now();
	ACE_Time_Value new_tv;
	new_tv.set_msec(new_time);
	ACE_Date_Time new_dt(new_tv);

	if (new_time <= old_time)
	{
		return false;
	}

	if (new_time - old_time >= 86400000 * 7)
	{
		return true;
	}

	int nw = new_dt.weekday();
	if (nw == 0)
	{
		nw = 7;
	}
	int ow = old_dt.weekday();
	if (ow == 0)
	{
		ow = 7;
	}

	if (nw < ow)
	{
		return true;
	}
	else if (new_dt.weekday() == old_dt.weekday())
	{
		if (new_time - old_time >= 86400000 * 6)
		{
			return true;
		}
	}

	return false;
}