html&javascriptで、偶数日はindex1.html 奇数日はindex2.htmlを表示するようにする

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>日付に応じたリダイレクト</title>
</head>
<body>
    <script>
        // 現在の日付を取得
        const currentDate = new Date();
        
        // 日にちを取得(1-31)
        const dayOfMonth = currentDate.getDate();
        
        // 偶数日か奇数日かを判断し、適切なページにリダイレクト
        if (dayOfMonth % 2 === 0) {
            // 偶数日の場合
            window.location.href = 'index1.html';
        } else {
            // 奇数日の場合
            window.location.href = 'index2.html';
        }
    </script>
</body>
</html>

MFC top / left が 0 なら、親ウインドウの中心とこのウィンドウの中心が合うようにする

    // top / left が 0 なら、親ウインドウの中心とこのウィンドウの中心が合うようにする
    if (top == 0 && left == 0) {
        CWnd* pParentWnd = (CWnd*)GetParent();
        if (pParentWnd) 
        {
            CRect parentRect;
            pParentWnd->GetWindowRect(&parentRect);
            CRect dialogRect;
            GetWindowRect(&dialogRect);
            int parentCenterX = parentRect.left + (parentRect.Width() / 2);
            int parentCenterY = parentRect.top + (parentRect.Height() / 2);
            int dialogWidth = dialogRect.Width();
            int dialogHeight = dialogRect.Height();
            left = parentCenterX - (dialogWidth / 2);
            top = parentCenterY - (dialogHeight / 2);
        }
    }

MFC チェックボックスのテキスト文字に合わせた幅調整する

/// <summary>
/// テキストの幅を計算し、チェックボックスのチェックマーク部分の幅を考慮して、適切なサイズのCRectを返します
/// </summary>
/// <param name="text"></param>
/// <returns></returns>
CRect CalculateCheckboxRect(CButton* pCheckbox, const CString& text)
{
    CDC* pDC = pCheckbox->GetDC();
    CFont* pOldFont = pDC->SelectObject(pCheckbox->GetFont());

    CSize textSize = pDC->GetTextExtent(text);
    pDC->SelectObject(pOldFont);
    pCheckbox->ReleaseDC(pDC);

    // チェックボックスのチェックマーク部分の幅と高さ(システムメトリクスから取得)
    int checkWidth = GetSystemMetrics(SM_CXMENUCHECK);
    int checkHeight = GetSystemMetrics(SM_CYMENUCHECK);

    // 余白を追加(左右に5ピクセルずつ、上下に2ピクセルずつ)
    int width = textSize.cx + checkWidth + 10; // 左右の余白10ピクセル
    int height = max(textSize.cy, checkHeight) + 4; // 上下の余白4ピクセル(2 + 2)

    // x座標に5ピクセル加えて左の余白を確保
    // y座標に2ピクセル加えて上の余白を確保
    return CRect(5, 2, width + 5, height + 2);
}

pythonでライブドアブログのsitemap.xmlからURLの一覧を取得する

import requests
from xml.etree import ElementTree
import time

def fetch_sitemap(url):
    response = requests.get(url)
    return response.content

def parse_sitemap(content):
    root = ElementTree.fromstring(content)

    # サイトマップインデックスの名前空間を取得
    ns = {'sm': root.tag.split('}')[0].strip('{')}

    urls = []

    # サイトマップまたはURLエントリを探す
    for sitemap in root.findall('.//sm:sitemap', ns) + root.findall('.//sm:url', ns):
        loc = sitemap.find('sm:loc', ns)
        if loc is not None:
            urls.append(loc.text)

    return urls

def get_all_urls(start_url):
    to_crawl = [start_url]
    crawled = set()
    all_urls = []

    while to_crawl:
        url = to_crawl.pop(0)
        if url in crawled:
            continue

        print(f"Fetching: {url}")
        content = fetch_sitemap(url)
        urls = parse_sitemap(content)

        for u in urls:
            if u.endswith('.xml'):
                if u not in crawled and u not in to_crawl:
                    to_crawl.append(u)
            else:
                all_urls.append(u)

        crawled.add(url)
        time.sleep(1)  # サーバーに負荷をかけないよう1秒待機

    return all_urls

# 最初のサイトマップURL
start_url = "http://blog.livedoor.jp/hogehoge/sitemap.xml"

# すべてのURLを取得
all_urls = get_all_urls(start_url)

# 結果を表示
print(f"Total URLs found: {len(all_urls)}")
for url in all_urls:
    print(url)