Ejemplo n.º 1
0
 BOOST_FORCEINLINE days_date
 generate_ge(weekday::rep a, weekday::rep b, days_date x)
 {
   return (a <= b)
       ? (x + days(b-a))
       : (x + days(weekday::size - (a-b)));
 }
Ejemplo n.º 2
0
bool TimeManager::
checkAlarm(uword i) {
#ifndef NDEBUG
    if (i > alarms.size()-1) {
        REPORT_ERROR("Alarm index \"" << i << "\" is out of range!");
    }
#endif
    if (alarms[i].freq.type() == typeid(time_duration)) {
        const auto &freq = boost::get<time_duration>(alarms[i].freq);
        if (freq.is_negative()) {
            int diff = alarms[i].lastStep-_numStep;
            if (diff == 0 || diff == freq.seconds()) {
                alarms[i].lastStep = _numStep;
                return true;
            }
        } else {
            time_duration diff = _currTime-alarms[i].lastTime;
            if (diff.total_seconds() == 0 || diff == freq) {
                alarms[i].lastTime = _currTime;
                return true;
            }
        }
    } else if (alarms[i].freq.type() == typeid(boost::gregorian::days)) {
        const auto &freq = boost::get<boost::gregorian::days>(alarms[i].freq);
        auto diffDays = _currTime.date()-alarms[i].lastTime.date();
        auto diffSeconds = _currTime.time_of_day()-alarms[i].lastTime.time_of_day();
        if (diffSeconds.total_seconds() == 0 &&
            (diffDays.days() == 0 || diffDays == freq)) {
            alarms[i].lastTime = _currTime;
            return true;
        }
    } else if (alarms[i].freq.type() == typeid(boost::gregorian::months)) {
        const auto &freq = boost::get<boost::gregorian::months>(alarms[i].freq);
        assert(freq.number_of_months() == 1);
        auto numDay = gregorian_calendar::end_of_month_day(alarms[i].lastTime.date().year(), alarms[i].lastTime.date().month());
        auto diffDays = _currTime.date()-alarms[i].lastTime.date();
        auto diffSeconds = _currTime.time_of_day()-alarms[i].lastTime.time_of_day();
        if (diffSeconds.total_seconds() == 0 &&
            (diffDays.days() == 0 || diffDays.days() == numDay)) {
            alarms[i].lastTime = _currTime;
            return true;
        }
    } else if (alarms[i].freq.type() == typeid(boost::gregorian::years)) {
        const auto &freq = boost::get<boost::gregorian::years>(alarms[i].freq);
        assert(freq.number_of_years() == 1);
        auto numDay = gregorian_calendar::is_leap_year(alarms[i].lastTime.date().year()) ? 366 : 365;
        auto diffDays = _currTime.date()-alarms[i].lastTime.date();
        auto diffSeconds = _currTime.time_of_day()-alarms[i].lastTime.time_of_day();
        if (diffSeconds.total_seconds() == 0 &&
            (diffDays.days() == 0 || diffDays.days() == numDay)) {
            alarms[i].lastTime = _currTime;
            return true;
        }
    }
    return false;
} // checkAlarm
Ejemplo n.º 3
0
//tempの年月日からn日以内のデータで,最も新しいor古い年月日の配列番地を返す
	int serch_later(int n,int topback){
		int num;

		if(n+temp.day>days(temp.year,temp.month)){		//月をまたぐとき
			n-=days(temp.year,temp.month)-temp.day;
			temp.day=0;
			temp.month++;
			if(temp.month>12){temp.year++;temp.month=1;}
		}
		else temp.day+=n;
		
		num=search(0,0)-1;
		if(topback==1)return top(num);
		if(topback==0)return back(num);
	}
Ejemplo n.º 4
0
int main(void)
{
    int index = 0;
    int tot = 0;
    char temp[21];
    struct month year[12] = {
        {"January", "JAN", 31, 1},
        {"Febuary", "FEB", 28, 2},
        {"March", "MAR", 31, 3},
        {"April", "APR", 28, 4},
        {"May", "MAY", 31, 5},
        {"June", "JUN", 28, 6},
        {"July", "JUL", 31, 7},
        {"August", "AUG", 28, 8},
        {"September", "SEP", 31, 9},
        {"October", "OCT", 28, 10},
        {"November", "NOV", 31, 11},
        {"December", "DEC", 28, 12},
    };
    
    puts("Please enter month name.");
    gets(temp);
    tot = days(year, temp);
    printf("Totoal days till %s is %d days.\n", temp, tot);
    
    return 0;   
}
int main()
{
	printf("请输入具体年月日:");
	scanf("%d.%d.%d",&date.year,&date.month,&date.day);
	printf("该日是该年的第%d天",days(date.year,date.month,date.day));
	return 0;
}
Ejemplo n.º 6
0
void ntpdtest::settime(int y, int m, int d, int H, int M, int S)
{

    time_t days(ntpcal_edate_to_eradays(y-1, m-1, d-1) + 1 - DAY_UNIX_STARTS);
    time_t secs(ntpcal_etime_to_seconds(H, M, S));

    nowtime = days * SECSPERDAY + secs;
}
Ejemplo n.º 7
0
int main()
{
	int days1, days2, days3;
	DATE testDate1 = {11, 20, 2012};
	DATE testDate2 = {12, 25, 3032};
	DATE testDate3 = {5, 14, 1900};

	days1 = days(testDate1);
	days2 = days(testDate2);
	days3 = days(testDate3);

	printf("\nThe number of days between 1/1/1900 and %d/%d/%d is %d\n", testDate1.month, testDate1.day, testDate1.year, days1);
	printf("The number of days between 1/1/1900 and %d/%d/%d is %d\n", testDate2.month, testDate2.day, testDate2.year, days2);
	printf("The number of days between 1/1/1900 and %d/%d/%d is %d\n", testDate3.month, testDate3.day, testDate3.year, days3);

	return 0;
}
Ejemplo n.º 8
0
int main()
{
	int days(int year, int month ,int day);
	printf("请输入年,月,日(用逗号隔开):\n");
	scanf("%d,%d,%d", &date.year, &date.month, &date.day);
	days(date.year, date.month, date.day);
	return 0;
}
Ejemplo n.º 9
0
TEST(question1_test7, date_to_day_test)
{	
	actual_date.year=1985;
	actual_date.month=3;
	actual_date.day=27;
	std::string actual_day=days(actual_date); //get day
    std::string expected_day="Wednesday";
	CHECK_EQUAL(expected_day,actual_day);
}
Ejemplo n.º 10
0
// seti_time::epoch() for returning or changing the epoch.
days seti_time::epoch(const days &e) { 
   days diff(e-epoch_val);
   epoch_val+=diff;
   jd_val-=diff;
   diff=days(floor(epoch_val.uval())+0.5-epoch_val.uval());
   epoch_val+=diff;
   jd_val-=diff;
   return epoch_val;
}
Ejemplo n.º 11
0
int main(void) {
	struct date today, term;
	int yearday, year, day; 
	printf("Enter year/month/day:");
	scanf("%d%d%d", &today.year, &today.month, &today.day);  /* 输入日期 */
	term.month = 12;					/* 设置变量的初始值: 月*/
	term.day = 31;						/* 设置变量的初始值: 日*/
	for (yearday = 0, year = 1990; year < today.year; year++) {
		term.year = year;
		yearday += days(term); /* 计算从1990年至指定年的前一年共有多少天 */
	}
	yearday += days(today);		/* 加上指定年中到指定日期的天数 */
	day = yearday % 5;							/*	求余数 */
	if (day > 0 && day < 4)
		printf("He was fishing at that day.\n");/* 打印结果 */
	else
		printf("He was sleeping at that day.\n");
	return 0;
}
Ejemplo n.º 12
0
tree strictConsensus(){
	//Initialising T[0]
	T[0].precompute();
	for(int i=1;i<=T[0].N;++i) T[0].good[i] = (T[0].H[i] >= 0);
	//Determining which nodes in T[0] exist in all the trees. These nodes will form the strict consensus tree
	for(int i=1;i<numTrees;++i) days(T[0],T[i]);
	//Contract the tree so that it only contains vertices identified in the previous step
	tree ret = contract(T[0]);
	return ret;
}
Ejemplo n.º 13
0
void read_time_conversions() {
   if (tai_utc_conv.size() == 0)  {
     tai_conv temp;
     char buf[256];
     FILE *in=fopen(TAI_UTC_CONV,"r");
     while (in && fgets(buf,255,in)) {
       double jd;
       // TAI-UTC=a0+(mjd-d0)*a1
       // a1=0 after 1 jan 1972 (introduction of leap seconds)
       sscanf(buf+17,"%lf",&jd);
       sscanf(buf+39,"%lf",&(temp.a0));
       sscanf(buf+60,"%lf",&(temp.d0));
       sscanf(buf+70,"%lf",&(temp.a1));
       tai_utc_conv[seti_time(days(jd),JD0)]=temp;
     }
     temp.a0=0;
     temp.d0=0;
     temp.a1=0;
     tai_utc_conv[seti_time()]=temp;
     fclose(in);
   }
   if (ut1_utc_conv.size() == 0) {
     char buf[256];
     FILE *in=fopen(UT1_UTC_CONV,"r");
     memset(buf,0,256);
     while (in && fgets(buf,255,in)) {
       double mjd, diff;
       diff=0;
       sscanf(buf+7,"%8lf",&mjd);
       // use Bulletin B values if available.
       if (!sscanf(buf+154,"%11lf",&diff)) {
         sscanf(buf+58,"%10lf",&diff);
       }
       if (diff!=0) {
         ut1_utc_conv[seti_time(days(mjd),MJD0)]=seconds(diff);
       }
       ut1_utc_conv[seti_time()]=seconds(0.0);
       memset(buf,0,256);
     }
     fclose(in);
   }
}
Ejemplo n.º 14
0
		CalendarTemplateElement::CalendarTemplateElement(
			RegistryKeyType id
		):	Registrable(id),
			_calendar(NULL),
			_rank(0),
			_minDate(neg_infin),
			_maxDate(pos_infin),
			_step(days(1)),
			_operation(ADD),
			_include(NULL)
		{}
int main()
{
int days(int year,int month,int day);
int days(int,int,int);
int day_sum;
printf("请输入年,月,日:");
scanf("%d,%d,%d",&date.year,&date.month,&date.day);
day_sum=days(date.year,date.month,date.day);
printf("%d/%d 是 %d 年中的第 %d 天。\n",date.month,date.day,date.year,days);
return 0;
}
Ejemplo n.º 16
0
std::string TimeSpan::str() const
{
	int totalMinutes =
		days() * 24 * 60 +
		hours() * 60 +
		minutes();

	Buffer b(64);
	b << totalMinutes << "m " << seconds() << "s";
	return b.str();
}
Ejemplo n.º 17
0
		BaseCalendarUpdateAction::BaseCalendarUpdateAction():
			_startDate(not_a_date_time),
			_endDate(not_a_date_time),
			_period(days(1)),
			_add(true),
			_addLink(false),
			_dateToForceToAdd(not_a_date_time),
			_dateToForceToRemove(not_a_date_time),
			_dateToBypassToAdd(not_a_date_time),
			_dateToBypassToRemove(not_a_date_time)
		{}
Ejemplo n.º 18
0
Archivo: 77.c Proyecto: 13436120/Cgames
void main()
{
    struct date today,term;
    int yearday,year,day;
	puts("◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇");
	puts("◇              打鱼还是晒网                        ◇");
	puts("◇    中国有句俗语叫【三天打鱼两天晒网】。          ◇");
	puts("◇某人20岁从1990年1月1日起开始【三天打鱼两天晒网】,◇");
	puts("◇问这个人在以后的某一天中是【打鱼】还是【晒网】?  ◇");
	puts("◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇\n");
	while(1)
	{
		printf(" >> 请输入年/月/日【输入1990 1 1 退出】:");
		scanf("%d%d%d",&today.year,&today.month,&today.day);  /*输入日期*/
		if(today.year<1990)
		{
			if(today.year<1970)
				puts(" >> 对不起,那一年那还没出生呢!按任意键继续...");
			else
				puts(" >> 对不起,那一年他还没开始打鱼呢!按任意键继续...");
			getch();
			continue;
		}
		if(today.year==1990&&today.month==1&&today.day==1)
			break;
		term.month=12;               /*设置变量的初始值:月*/
		term.day=31;                 /*设置变量的初始值:日*/
		for(yearday=0,year=1990;year<today.year;year++)
		{
			term.year=year;
			yearday+=days(term);     /*计算从1990年至指定年的前一年共有多少天*/
		}
		yearday+=days(today);       /*加上指定年中到指定日期的天数*/
		day=yearday%5;               /*求余数*/
		if(day>0&&day<4) printf(" >> %d年%d月%d日,他正在打鱼。\n",today.year,today.month,today.day);   /*打印结果*/
		else printf(" >> %d年%d月%d日,他正在晒网。\n",today.year,today.month,today.day);
		
	}
	puts("\n >>      请按任意键退出...");
	getch();
}
Ejemplo n.º 19
0
Archivo: p19.c Proyecto: ipeet/euler
int main() {
    unsigned int year, mo;
    unsigned int totaldays = 1;

    unsigned int sun_fst_ct = 0;

    printf("feb 1996: %d\n",days(2,1996));
    printf("feb 2000: %d\n",days(2,2000));

    for(year = 1900; year<2001; ++year) {
        for(mo=1; mo<=12; ++mo) {
            totaldays+=days(mo,year);
            if((year>1900) && (totaldays%7==0)) ++sun_fst_ct;
        }
    }
    if(totaldays%7==0) --sun_fst_ct; //remove jan 1, 2001

    printf("Sunday the 1st in 20th Century: %d\n",sun_fst_ct);

    return 0;
}
// ----------------------------------------------------
// CAlfExCalendarEngine::ConstructL
// ----------------------------------------------------
void CAlfExCalendarEngine::ConstructL()
    {
    TReal   randomNumber;
    TInt    randomNumberInt;
    TInt64  seed=0;
    
    CDesCArrayFlat* array = new(ELeave) CDesCArrayFlat(KAlfExCalendarEngineArrayGranularity);
    CleanupStack::PushL( array );
    
    CEikonEnv* coeEnv = CEikonEnv::Static();
    TResourceReader reader;
    coeEnv->CreateResourceReaderLC(reader, R_ALFEXCALENDAR_CALENDAR_EVENTS_ARRAY);
    
    const TInt count = reader.ReadInt16();
    for(TInt loop = 0; loop < count; loop++)
        {
        HBufC* txt = reader.ReadHBufCL();
        CleanupStack::PushL(txt);
        array->AppendL(*txt);
        CleanupStack::PopAndDestroy(txt);
        }
    CleanupStack::PopAndDestroy(); //reader2

    TAlfExCalendarEngineListItem event;
    event.iItemDay.HomeTime();
    seed = event.iItemDay.Int64();
    randomNumber = count * Math::FRand(seed);
    randomNumberInt = (TInt) randomNumber;
    
    TTimeIntervalDays days(KAlfExCalendarEngineDayTenDays);
    event.iItemDay -= days; // lets start 10 days before present
    
    for(TInt i=0; i<KAlfExCalendarEngineDayRandomizeLoopCount; i++)
        {
        for(TInt loop = 0; loop < count; loop++)
            {
            randomNumber = Math::FRand(seed);
            if(randomNumber < KAlfExCalendarEngineChangeDay)
                {
                randomNumber *= KAlfExCalendarEngineDayRandomize;
                randomNumberInt = (TInt) randomNumber;
                days = TTimeIntervalDays(randomNumberInt);
                event.iItemDay += days;
                }
            event.iItemText.Copy((*array)[loop]);
            iCalendarEventArray.AppendL(event);
            }
        }
    CleanupStack::PopAndDestroy(array);
    }
Ejemplo n.º 21
0
void TimetableWarning::toParametersMap(
    ParametersMap& pm,
    bool withDates
) const	{

    pm.insert(DATA_NUMBER, getNumber());
    pm.insert(DATA_TEXT, getText());

    // Active days
    const Calendar& calendar(getCalendar());
    date firstDate(calendar.getFirstActiveDate());
    date lastDate(calendar.getLastActiveDate());
    if(withDates)
    {
        for(date day(firstDate); day <lastDate; day += days(1))
        {
            // Jump over inactive days
            if(!calendar.isActive(day))
            {
                continue;
            }

            // Writing the active date to a sub map
            boost::shared_ptr<ParametersMap> datePM(new ParametersMap);
            datePM->insert(ATTR_DATE, day);
            pm.insert(TAG_DAY, datePM);
        }
    }

    // Active days bounds
    pm.insert(DATA_FIRST_DATE, firstDate);
    pm.insert(DATA_LAST_DATE, firstDate);

    // Active days bounds (old schema - deprecated)
    pm.insert(DATA_FIRST_DAY, firstDate.day());
    pm.insert(DATA_FIRST_MONTH, firstDate.month());
    pm.insert(DATA_FIRST_YEAR, firstDate.year());
    pm.insert(DATA_LAST_DAY, lastDate.day());
    pm.insert(DATA_LAST_MONTH, lastDate.month());
    pm.insert(DATA_LAST_YEAR, lastDate.year());

    // Calendar template
    if(_calendarTemplate)
    {
        boost::shared_ptr<ParametersMap> calendarPM(new ParametersMap);
        _calendarTemplate->toParametersMap(*calendarPM, true);
        pm.insert(TAG_CALENDAR, calendarPM);
    }
}
Ejemplo n.º 22
0
int main() {
  long long s[100001]; // sum of A
  int t=0, n=0, a=0;
  scanf("%d", &t);
  for (int i=0; i<t; ++i) {
    scanf("%d", &n);
    s[0] = 0;
    for (int j=1; j<=n; ++j) {
      scanf("%d", &a);
      s[j] = s[j-1] + a;
    }
    printf("%d\n", days(s, n));
  }
  return 0;
}
Ejemplo n.º 23
0
int main()
{
	int N=0,y=1,m=1,d=0;
	int wdays[8]={0};
	scanf("%d",&N);
	while(y<=N)
	{
		d=y_days(y-1)+days(y,m-1);
		wdays[(d+13)%7+1]++;
//		printf("d=%d m=%d\n",d,m);
		m++;
		if(m%12==0)
		{
			d=y_days(y-1)+days(y,m-1);
			wdays[(d+13)%7+1]++;
			m=1;
			y++;
		}
	}
	printf("%d %d %d %d %d %d %d",wdays[7],wdays[1],wdays[2],wdays[3],wdays[4],wdays[5],wdays[6]);



}
Ejemplo n.º 24
0
 vector<int> dailyTemperatures(vector<int>& T) {
     vector<int> days(T.size());
     priority_queue<pair<int,int>> q;
     
     for(int i=0; i < T.size(); ++i)
     {
         while(q.size() && q.top().first > -T[i])
         {
             auto top = q.top(); q.pop();
             days[top.second] = i - top.second;
         }
         q.push(make_pair(-T[i], i));
     }
     return days;
 }
Ejemplo n.º 25
0
int main()
{
	func();//函数调用
	printf("欢迎使用main函数!\n");//函数调用
	printf("%g\n", func());//函数调用
	last();//函数调用
	printf("%d\n", isleap(2010));
	printf("%d\n", isleap(2008));
	printf("%d\n", days(2010,7));//调用函数,传递的数据叫实参
	print_diamond(5);
	print_diamond(4);
	//func(3,5,7,"hello",123.456);参数表为空,能通过编译
	//last(3);参数表是void,不能通过编译
	//printf("%d", print_diamond(3));返回类型是void,不带回结果
	return 0;
}
Ejemplo n.º 26
0
double DateTime::duration(const double& time, double duration,
                          DateTimeUnitOptions unit)
{
    switch (unit) {
    case DATE_TIME_UNIT_NONE:
    case DATE_TIME_UNIT_DAY:
        return days(duration);
    case DATE_TIME_UNIT_WEEK:
        return weeks(duration);
    case DATE_TIME_UNIT_MONTH:
        return months(time, duration);
    case DATE_TIME_UNIT_YEAR:
        return years(time, duration);
    }
    return 0;
}
Ejemplo n.º 27
0
int main(void)
{
  int year, wday = 0, sun = 0, mon;

  for (year = 1901; year <= 2000; year++) {
    for (mon = 1; mon <= 12; mon++) {
      if (wday == 5) {
        /* 1901-01-01 is Tuesday, so wday == 5 means Sunday */
        sun++;
      }
      wday = (wday + days(year, mon))%7;
    }
  }
  printf("%d\n", sun);

  return 0;
}
Ejemplo n.º 28
0
int main()
{
  int t,q;
  int y,m;
  int i,j;
  scanf("%d",&t);
  for(i=0;i<t;++i)
  {
    scanf("%d %d %d",&T1,&T2,&T3);
    scanf("%d",&q);
    for(j=0;j<q;++j)
    {
      scanf("%d %d",&y,&m);
      printf("%d\n",days(y,m));
    }
  }
  return 0;
}
Ejemplo n.º 29
0
int main()
{
	freopen("friday.in","r",stdin);
	freopen("friday.out","w",stdout);
	int count[7]={0};
	int begin=1900,end,t,day=5;
	scanf("%d",&t);
	end=begin+t-1;
	for(int i=begin; i<=end; i++)
		for(int j=1; j<=12; j++)
		{
			count[day]++;
			day=(day+days(i,j))%7;
		}
	printf("%d %d",count[5],count[6]);
	for(int i=0; i<5; i++)
		printf(" %d",count[i]);
	printf("\n");
}
Ejemplo n.º 30
0
/* Take host entry from invite list and display it ban-style.
 */
static void display_invite(int idx, int number, maskrec *invite,
                           struct chanset_t *chan, int show_inact)
{
  char dates[81], s[41];

  if (invite->added) {
    daysago(now, invite->added, s);
    sprintf(dates, "%s %s", MODES_CREATED, s);
    if (invite->added < invite->lastactive) {
      strcat(dates, ", ");
      strcat(dates, MODES_LASTUSED);
      strcat(dates, " ");
      daysago(now, invite->lastactive, s);
      strcat(dates, s);
    }
  } else
    dates[0] = 0;
  if (invite->flags & MASKREC_PERM)
    strcpy(s, "(perm)");
  else {
    char s1[41];

    days(invite->expire, now, s1);
    sprintf(s, "(expires %s)", s1);
  }
  if (invite->flags & MASKREC_STICKY)
    strcat(s, " (sticky)");
  if (!chan || ischaninvite(chan, invite->mask)) {
    if (number >= 0)
      dprintf(idx, "  [%3d] %s %s\n", number, invite->mask, s);
    else
      dprintf(idx, "INVITE: %s %s\n", invite->mask, s);
  } else if (show_inact) {
    if (number >= 0)
      dprintf(idx, "! [%3d] %s %s\n", number, invite->mask, s);
    else
      dprintf(idx, "INVITE (%s): %s %s\n", MODES_INACTIVE, invite->mask, s);
  } else
    return;
  dprintf(idx, "        %s: %s\n", invite->user, invite->desc);
  if (dates[0])
    dprintf(idx, "        %s\n", dates);
}