3 条题解

  • 1
    @ 2024-7-25 13:03:00

    参考答案:

    #include<iostream>
    
    using namespace std;
    
    int main() 
    {
    	int y, m, d;
    
    	scanf("%4d-%2d-%2d", &y, &m, &d);
    	if (d > 2) printf("%d-%02d-%02d\n", y, m, d - 2);
    	else
    	{
    		if (m == 3)
    		{
    			if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0)
    			{
    				if (d == 1)
    					printf("%d-%02d-28\n", y, m - 1);
    				else
    					printf("%d-%02d-29\n", y, m - 1);
    			}
    			else
    			{
    				if (d == 1)
    					printf("%d-%02d-27\n", y, m - 1);
    				else
    					printf("%d-%02d-28\n", y, m - 1);
    			}
    		}
    		else if (m == 1)
    		{
    			if (d == 1)
    				printf("%d-12-30\n", y - 1);
    			else printf("%d-12-31\n", y - 1);
    		}
    		else if (m == 7)
    		{
    			if (d == 1)
    				printf("%d-%02d-29\n", y, m - 1);
    			else printf("%d-%02d-30\n", y, m - 1);
    		}
    		else if (m == 8)
    		{
    			if (d == 1)
    				printf("%d-%02d-30\n", y, m - 1);
    			else printf("%d-%02d-31\n", y, m - 1);
    		}
    		else if (m == 5 || m == 10 || m == 12)
    		{
    			if (d == 1)
    				printf("%d-%02d-29\n", y, m - 1);
    			else printf("%d-%02d-30\n", y, m - 1);
    		}
    		else
    		{
    			if (d == 1)
    				printf("%d-%02d-30\n", y, m - 1);
    			else printf("%d-%02d-31\n", y, m - 1);
    		}
    	}
    
    	return 0;
    }
    
    • 0
      @ 2025-10-17 18:28:43

      Python:

      from datetime import datetime, timedelta
      
      date_str = input().strip()
      date_obj = datetime.strptime(date_str, "%Y-%m-%d").date()
      two_days_ago = date_obj - timedelta(days=2)
      print(two_days_ago.strftime("%Y-%m-%d"))
      
      • 0
        @ 2025-5-19 23:38:55
        #include<iostream>
        
        bool j(int y)
        {
        	return (y % 4 == 0 && y % 100 != 0) || y % 400 == 0;
        }
        
        void solve(int date[3])
        {
        	int they{date[0]}, them{date[1]}, tdby{date[2]};
        	int m[13] = {29,
        		31, 28, 31,
        		30, 31, 30,
        		31, 31, 30,
        		31, 30, 31
        	};
        	if(tdby - 2 <= 0) {
        		if(j(they) && them == 3) {
        			tdby += m[0] - 2;
        			them = 2;
        		}
            else if(them == 1) {
        			they--;
        			them = 12;
        			tdby += m[12] - 2;
        		}
            else {
        			them--;
        			tdby += m[them] - 2;
        		}
        	}
          else {
        		tdby -= 2;
        	}
        	printf("%d-%02d-%02d", they, them, tdby);
        }
        
        int main()
        {
        	int date[3];
        	scanf(
        		"%d-%d-%d",
        		&date[0], &date[1], &date[2]
        	);
        	solve(date);
        	return 0;
        }
        
        
        • 1

        信息

        ID
        45
        时间
        1000ms
        内存
        256MiB
        难度
        9
        标签
        递交数
        21
        已通过
        3
        上传者