c++日期排序

#include<iostream>
#include<iomanip>
#include<vector>
#include<string>
#include<cmath>
using namespace std;



int main()
{
    vector<int>year;
    vector<int> month;
    vector<int>day;
    char a, b;
    int c, d, e;
    while (cin >> c >> a >> d >> b >> e)
    {
        month.push_back(c);
        day.push_back(d);
        year.push_back(e);
    }
    int len = year.size();
    for (int i = 0; i < len; i++)
    {
        for (int j = 0; j < len; j++)
        {
            if (year[i] < year[j])
            {
                int temp1 =year [i];
               year [i] =year [j];
               year [j] = temp1;
                int temp2 =month [i];
               month [i] =month [j];
                month[j] = temp2;
                int temp =day [i];
                day[i] =day [j];
                day[j] = temp;
            }
            else if ((year[i] == year[j]) && (i != j) && (month[i] < month[j]))
            {
                int temp1 = year[i];
                year[i] = year[j];
                year[j] = temp1;
                int temp2 = month[i];
                month[i] = month[j];
                month[j] = temp2;
                int temp = day[i];
                day[i] = day[j];
                day[j] = temp;
            }
            else if ((year[i] == year[j]) && (i != j) && (month[i] == month[j]) && (day[i] < day[j]))
            {
                int temp1 = year[i];
                year[i] = year[j];
                year[j] = temp1;
                int temp2 = month[i];
                month[i] = month[j];
                month[j] = temp2;
                int temp = day[i];
                day[i] = day[j];
                day[j] = temp;
            }
        }
    }
    for (int i = 0; i < len; i++)
    {
        cout << setw(2) << setfill('0') <<month[i] << "/" << day[i] << "/" << year[i] << endl;
    }

   
    return 0;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是C++实现文件按照修改日期排序的代码: ```c++ #include <iostream> #include <fstream> #include <string> #include <vector> #include <algorithm> #include <ctime> #include <sys/stat.h> using namespace std; // 定义一个结构体,保存文件名和修改时间 struct FileInfo { string name; time_t modifyTime; }; // 比较函数,用于排序 bool cmp(const FileInfo& a, const FileInfo& b) { return a.modifyTime > b.modifyTime; } int main() { // 定义文件夹路径 string folderPath = "/path/to/folder"; // 打开文件夹 DIR* dir = opendir(folderPath.c_str()); if (dir == NULL) { cout << "文件夹不存在!" << endl; return 0; } // 读取文件夹中的文件名和修改时间 dirent* dp; vector<FileInfo> fileInfos; while ((dp = readdir(dir)) != NULL) { if (dp->d_name[0] == '.') { // 忽略隐藏文件 continue; } string filePath = folderPath + "/" + dp->d_name; struct stat s; if (stat(filePath.c_str(), &s) == 0) { time_t modifyTime = s.st_mtime; fileInfos.push_back({dp->d_name, modifyTime}); } } closedir(dir); // 按照修改时间排序 sort(fileInfos.begin(), fileInfos.end(), cmp); // 输出排序结果 for (auto fileInfo : fileInfos) { cout << fileInfo.name << " " << ctime(&fileInfo.modifyTime); } return 0; } ``` 需要注意的是,该代码使用了Unix系统中的stat函数获取文件的修改时间,因此只能在Unix/Linux系统下运行。如果是在Windows系统下运行,需要使用Windows API中的GetFileAttributes和FindFirstFile等函数获取文件的属性信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值