週の(簡単に)日 - LeetCode

説明:

日付を考えると、その日のために対応する曜日を返します。

入力は、三の表す整数として与えられdaymonthそしてyearそれぞれ。

次のいずれかの値として答えを返します  {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}

 

例1:

入力:日= 31月= 8、年= 2019
 出力: "土曜日"

例2:

入力:日= 18月= 7、年= 1999
 出力: "日曜日"

例3:

入力:日= 15月= 8、年= 1993
 出力: "日曜日"

 

制約:

  • 与えられた日付が年の間に有効な日付です19712100
容認されました
4,400
提出
6472

 

溶液:

 

クラスのソリューション{
     公共の文字列のdayOfTheWeek(int型日、int型月、int型年){ 
        
        
        // 2019年9月8日の日曜日。   
        
        // 我々は、日付差を取得する必要があります。そのように、私たちは、その日は何の日を知ることができるようになります。
             int型 NUM_1 =     GetNum(日、月、年);
             INT NUM_2 = GetNum(8,9,2019 )。
             // するSystem.out.println(NUM_2-NUM_1); 
            INTのdiff = Math.abs(NUM_2-NUM_1)%7 
           
           もし(差分== 0 ){
                返す「日曜日」
           } 
        
        
        場合(NUM_2 - NUM_1> 0 ){ 
            
             場合(差分== 1 ){ 
                
                戻り "土曜日" 
            } 
            そう であれば(差分== 2 ){
                 戻り「金曜日」
            } 
              そう であれば(差分== 3 ){
                 戻り「木曜日」
            } 
              そう であれば(差分== 4 ){
                 戻り「水曜日」
            } 
              そう であれば(差分== 5 ){
                 戻り「火曜日」
            }  それ以外の 場合(差分== 6 ){
                 リターン「月曜日」
            } 
        } 
        { 
            
            場合(差分== 1 ){ 
                
                戻り "月曜日" 
            } 
            そう であれば(差分== 2 ){
                 戻り「火曜日」
            } 
              そう であれば(差分== 3 ){
                 戻り「水曜日」
            } 
              そう であれば(差分== 4 ){
                 戻り「木曜日」 
            } 
              そう IF(差分== 5 ){
                 戻り "金曜日のカタログ" ; 
            }   そう IF(差分== 6 ){
                 戻り "土曜日" ; 
            } 
            
        } 
        
        
            のSystem.out.println(GetNum( 3,3,1977 )); 
        
            システム.out.println(GetNum( 8,9,2019 ));
         戻りは "" ; 
    } 
    / * 
                年与えられ、それは閏年か否かが判定されます。条件:
        A:4で割り切れ、および100は割り切れすることはできません。または
        B:400で割り切れます。* / 
    
    静的 ブールLEAP(INT A){ 
        
        場合(%4 == 0 &&%100!= 0 ){
             戻り 
        } 
        そう であれば(%400 == 0 ){
             戻り 
        } 
        {
             戻り 
        } 
    } 
    
    静的 INT GetNum(INT日、int型月、int型年){ 
            
           
        HashMapの <整数、整数>マップ= 新しい HashMapの<整数、整数> (); 
        
        // 1月31日日
         //2月うるう年かどうか。(28/29日)
         // 3月31日日
         // 4月30日日
         // 5月31日日
         // 6月30日日
         // 7月31日日
         // 8月31日日
         // 9月30日日
         // 10月31日日
         // 11月30日日
         // 12月31日日
        
        map.put( 1,31 )。
        map.put( 3,31 )。
        map.put( 4,30 )。
        map.put( 5,31 )。
        map.put( 6,30 )。
        map.put( 7.31 )。
        map.put( 8,31 )。
        map.put( 9,30 )。
        map.put( 10,31 )。
        map.put( 11,30 )。
        map.put( 12,31 )。
        
        
        もし(リープ(年)){ 
            
            map.put( 2,29 )。
        } 
        { 
            map.put( 2,28 )。
        } 
        
        
          int型の和= 0 以下のためにint型 I = 1977;私は++; iの年< ){ 
                
                場合(リープ(I)){
                     合計 =合計+ 366 
                } 
                {  =合計365 
                } 
               
            } 
        
            のためにint型 ; iは月<I ++はI = 1 ){ 
                
                合計 =合計+ map.get(i)を、
                
            } 
         =和+ 日。
        
      戻り値の合計。
    } 
}

 

おすすめ

転載: www.cnblogs.com/codingyangmao/p/11490892.html