1

興味深い問題があります。次のようなテキスト ファイル内の項目のリストを DATE で並べ替える必要があります。

    http://www.boatus.com/sailing,1/21/2013 9:00 PM
    http://www.boatus.com/powerboat,3/21/2012 10:00 PM
    http://www.boatus.com/games.html,5/20/2013 10:00 PM
    http://www.boatus.com/,4/11/2013 10:00 PM
    http://www.boatus.com/pressroom/prrss.asp,4/21/2013 10:00 PM
    http://www.boatus.com/,4/20/2013 9:00 PM

また、100 日間の履歴と言うだけで十分です。したがって、今日が 2013 年 5 月 10 日である場合、2013 年 1 月 30 日から 2013 年 5 月 10 日までのみが必要です。したがって、上記のリストはソート後に次のようになります。

    http://www.boatus.com/,4/11/2013 10:00 PM
    http://www.boatus.com/,4/20/2013 9:00 PM
    http://www.boatus.com/pressroom/prrss.asp,4/21/2013 10:00 PM
    http://www.boatus.com/games.html,5/20/2013 10:00 PM

したがって、過去 100 日間のみが日付順にリストされます。

4

4 に答える 4

0

並べ替えているデータが既にテキスト形式である場合は、コピーして新しい Excel ドキュメントに貼り付け、日付で並べ替えることができると思います

于 2013-05-10T15:36:10.733 に答える
0

現時点での私のコード、これまでの助けに感謝します!!!! 日付形式をYYYYMMDDに変更する必要がありますが、コードに問題があります.. grrr

    @ECHO OFF
    SETLOCAL enabledelayedexpansion

    for /f "tokens=1-3delims=/" %%i in ("%date:~4,10%") do set /a month=%%i, day=%%j, year=%%k
    if %month% lss 10 set "month=0%month%"
    if %day% lss 10 set "day=0%day%"
    call:DateToJDN %year%%month%%day% today
    echo Today %today% %year%%month%%day% 

    (
    FOR /f "tokens=1*delims=, " %%h IN (file.txt) DO (
     FOR /f "tokens=1-7delims=/: " %%a IN ("%%i") DO (

      SET /A RMONTH=100+%%a, RDAY=100+%%b
      SET /a RHOUR=%%d+100
      IF %%d==12 SET RHOUR=100
      call:DateToJDN %%c!RMONTH:~1!!RDAY:~1! rtoday
      REM call:DateToJDN %%c%%a%%b rtoday
      set /a diffdays=!today!-!rtoday!
      REM echo diffdays ===  !today!-!rtoday! = !diffdays!
      if !diffdays! leq 100 (
        ECHO %%c!rmonth!!rday!%%f!rhour!%%e,%%h,%%i
      )
     )
    )
    )>sorttemp.txt
    (
    FOR /f "tokens=1*delims=," %%i IN ('sort ^<sorttemp.txt') DO ECHO %%j
    )>output.txt
    TYPE output.txt
    ::: DEL sorttemp.txt /F /Q
    notepad sorttemp.txt
    GOTO :eof

    :DateToJDN yyyymmdd jdn=
    setlocal
    set date=%1
    REM echo %date%
    set /A yy=%date:~0,4%, mm=1%date:~4,2% %% 100, dd=1%date:~-2% %% 100
    set /A a=mm-14, jdn=(1461*(yy+4800+a/12))/4+(367*(mm-2-12*(a/12)))/12-(3*((yy+4900+a/12)/100))/4+dd-32075
    endlocal & set %2=%jdn%
    exit /B

    endlocal
于 2013-05-14T23:50:29.007 に答える