1. 自我介绍
2. 聊简历
3. 拥堵控制和流量控制
4. 进程通信? (信号,信号量,消息队列,共享内存)
5. 什么是消息?
6. leftjoin 和 rightjoin的区别?
7. 手撕代码 输入任意一个整数n,推算当前日期前n天或者后n天日期,编程用unix时间按照s推算,不能使用库函数。
许愿二面
#include<bits/stdc++.h>
#define MAXVAL 100005
using namespace std;
#define DAY (24*60*60)
#define YEAR 365
int MONTH[12] = {31, 28, 31, 30, 31, 30, 31, 31 ,30, 31 ,30,31};
bool isLeapYear(long year) {
return ((year & 3) == 0) && ((year % 100) != 0 || (year % 400) == 0);
}
string dateOfday(int n)
{
time_t t = time(0);
int dayNum = t/DAY + n;
string year,month,day;
int cnt = 0; //1970
bool flag = false; // 默认非闰年
string ans;
while(dayNum>366)
{
if(isLeapYear(1970+cnt)) dayNum -= 1;
dayNum -= 365;
cnt++;
}
if (!isLeapYear(1970+cnt)) flag = true;
if(dayNum == 365 && !flag) cnt++; // 非闰年,365天,加一年
year = to_string(1970+cnt);
if(flag) MONTH[1] = 29;
for(cnt = 1; cnt<=12 && dayNum>0; ++cnt)
{
dayNum -= MONTH[cnt-1];
}
month = to_string(cnt-1);
day = to_string(dayNum + MONTH[cnt-2]);
ans = year+"-"+month+"-"+day;
return ans;
}
int main(int argc, char const *argv[])
{
int n;
cin>>n;
cout<<dateOfday(n);
}



京公网安备 11010502036488号