没有合适的资源?快使用搜索试试~ 我知道了~
关于c++设计实验报告中的日期格式处理.多次搜寻后找到一可用的···
资源推荐
资源详情
资源评论
#ifndef DATEFORMATTER_H
#define DATEFORMATTER_H
#include <iostream>
#include <time.h>
#include <string>
using namespace std;
class DateFormatter { //日期格式类
private:
int day;
int mon;
int year;
public:
friend ostream& operator <<(ostream & ,DateFormatter &
);
friend istream& operator >>(istream &
,DateFormatter & );
static char* FindMonth(int m) { //根据月份返回
表示月份的字符串
if(m ==0) {
return "JAN";
}else if(m == 1) {
return "FEB";
}else if(m == 2) {
return "MAR";
}else if(m == 3) {
return "APR";
}else if(m == 4) {
return "MAY";
}else if(m == 5) {
return "JUN";
}else if(m == 6) {
return "JUL";
}else if(m == 7) {
return "AUG";
}else if(m == 8) {
return "SEP";
}else if(m == 9) {
return "OCT";
}else if(m == 10) {
return "NOV";
}else if(m == 11) {
return "DEC";
}else {
return "NUL";
}
}
DateFormatter();
DateFormatter(int day,int mon,int year);
DateFormatter(char* date);
inline int GetDay() { return day; } // 返回
日期
inline int GetMonth() { return mon; } // 返回
月份
inline int GetYear() { return year; } // 返回
年份
inline void SetDay(int d) { day = d; } // 设置
时间
inline void SetMonth(int m) { mon =m; } // 设置
月份
inline void SetYear(int y) { year = y; } // 设置
年份
inline bool IsLeapYear()
{ // 查看是否是闰年
float rem = year%4;
if(rem == 0.0)
{
return true;
}else {
return false;
}
}
void operator + (int); //在日期
上加上天数
void operator - (int); //在日期
上减去天数
void operator ++ (); //日期自
加
void operator -- (); //日期自
减
void IncrementMonth(); // 在日期
上加上月份
void PlusMonths(int months); //在日期
上减去月份
char* GetDate();
int FindDifferenceInMonths(DateFormatter); //返
回两个日期间月份的差值
int operator - (DateFormatter); //返回两
个日期间天数的差值
static char* Today()
{ //返回当前系统时间的字符串
const time_t curr = time(0);
tm *dt = localtime(&curr);
int d = dt->tm_mday;
int y = (dt->tm_year+1900);
int m = dt->tm_mon;
char mn[4];
strcpy(mn,FindMonth(m));
char ret[25];
strcpy(ret,FormatDate(d,mn,y));
return ret;
}
/**/
char* GetFormattedDate();
int operator < (DateFormatter df);
int operator > (DateFormatter df);
int operator == (DateFormatter df);
private:
int FindMonthInNumber(string m); //将用字符串表
示的月份形式转换为数字形式
static char* FormatDate(int d,char* m,int y) {
//将时间用字符串形式表示
char* dy = new char[25];
char* yr = new char[25];
dy = itoa(d,dy,10);
yr = itoa(y,yr,10);
strcat(dy,"-");
strcat(dy,m);
strcat(dy,"-");
strcat(dy,yr);
return dy;
}
string to_lower(string s); //将字符串中所有字
母转换为小写
int FindDaysInMonth(int m) { //返回月份中的最大
天数
if(m == 0) {
return 31;
}else if(m == 1) {
if(IsLeapYear()) {
return 29;
}else {
return 28;
}
}else if(m == 2) {
return 31;
}else if(m == 3) {
return 30;
}else if(m == 4) {
return 31;
}else if(m == 5) {
return 30;
}else if(m == 6) {
return 31;
}else if(m == 7) {
return 31;
}else if(m == 8) {
return 30;
}else if(m == 9) {
return 31;
}else if(m == 10) {
return 30;
}else if(m == 11) {
剩余21页未读,继续阅读
资源评论
qq_41994404
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功