没有学过指针和友元函数,不使用这两个能实现吗?不能使用c语言
2条回答 默认 最新
- 技术专家团-小桥流水 2022-11-12 20:02关注
题目没说用指针把,不用指针和友元函数也能实现
代码如下:
#include <iostream> #include <time.h> using namespace std; class Date { private: int year, month, day; public: Date() { int t = time(0); setDate(t); } Date(int elapseTime) { setDate(elapseTime); } Date(int y, int m, int d) { year = y; month = m; day = d; } //getter and seter int getYear() { return year; } int getMonth() { return month; } int getDay() { return day; } void setYear(int y) { year = y; } void setMonth(int m) { month = m; } void setDay(int d) { day = d; } void setDate(int elapseTime) { int a[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 }; int totalday = elapseTime / (24 * 3600); day = totalday; year = 1970; month = 1; while (day > 365) { if (isLeapYear(year)) day -= 366; else day -= 365; year++; } //非闰年,并且当前天数是365天 if (!isLeapYear(year) && day == 365) year++; //如果是闰年 if (isLeapYear(year)) { if (day <= 31) month = 1; else if (day <= 60) { month = 2; day -= 31; } else if (day <= 91) { month = 3; day -= 60; } else if (day <= 121) { month = 4; day -= 91; } else if (day <= 152) { month = 5; day -= 121; } else if (day <= 182) { month = 6; day -= 152; } else if (day <= 213) { month = 7; day -= 182; } else if (day <= 244) { month = 8; day -= 213; } else if (day <= 274) { month = 9; day -= 244; } else if (day <= 305) { month = 10; day -= 274; } else if (day <= 335) { month = 11; day -= 305; } else { month = 12; day -= 305; } } else { if (day <= 31) { month = 1; } else if (day <= 59) { month = 2; day -= 31; } else if (day <= 90) { month = 3; day -= 59; } else if (day <= 120) { month = 4; day -= 90; } else if (day <= 151) { month = 5; day -= 120; } else if (day <= 181) { month = 6; day -= 151; } else if (day <= 212) { month = 7; day -= 181; } else if (day <= 243) { month = 8; day -= 212; } else if (day <= 273) { month = 9; day -= 243; } else if (day <= 304) { month = 10; day -= 273; } else if (day <= 334) { month = 11; day -= 304; } else { month = 12; day -= 334; } } day = day + 1; } private: int isLeapYear(int y) //判断是否是闰年 { if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0) return 1; else return 0; } }; int main() { Date d(561555550); cout << d.getYear() << "-" << d.getMonth() << "-" << d.getDay(); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 救!ENVI5.6深度学习初始化模型报错怎么办?
- ¥30 eclipse开启服务后,网页无法打开
- ¥30 雷达辐射源信号参考模型
- ¥15 html+css+js如何实现这样子的效果?
- ¥15 STM32单片机自主设计
- ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢
- ¥15 不小心不正规的开发公司导致不给我们y码,
- ¥15 我的代码无法在vc++中运行呀,错误很多
- ¥50 求一个win系统下运行的可自动抓取arm64架构deb安装包和其依赖包的软件。
- ¥60 fail to initialize keyboard hotkeys through kernel.0000000000