Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,848 questions

51,769 answers

573 users

How to create an array of days starting with today and going back the last 30 days in C++

1 Answer

0 votes
#include <iostream>
#include <vector>
#include <chrono>

std::vector<int> getLast30Days() {
    std::vector<int> days;

    // Get the current time
    auto now = std::chrono::system_clock::now();

    for (int i = 0; i < 30; ++i) {
        // Subtract 'i' days from the current time
        auto past_time = now - std::chrono::hours(24 * i);
        
        // Convert to time_t to extract day
        std::time_t past_time_t = std::chrono::system_clock::to_time_t(past_time);
        std::tm* past_tm = std::localtime(&past_time_t);

        // Store the day of the month in the vector
        days.push_back(past_tm->tm_mday);
    }

    return days;
}

int main() {
    // Call the function to get the last 30 days
    std::vector<int> days = getLast30Days();

    std::cout << "Days: [";
    for (size_t i = 0; i < days.size(); ++i) {
        std::cout << days[i];
        if (i < days.size() - 1) {
            std::cout << ", ";
        }
    }
    std::cout << "]" << std::endl;
}


/*
run:

Days: [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12]

*/

 



answered Apr 10, 2025 by avibootz
edited Apr 10, 2025 by avibootz
...